Merge remote-tracking branch 'origin/master'

This commit is contained in:
Lucian Tuca 2019-09-13 11:07:49 +03:00
commit 365923a6c1
29 changed files with 2196 additions and 1946 deletions

View File

@ -12,8 +12,8 @@
{ {
"transformerName": "pdfrenderer", "transformerName": "pdfrenderer",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "application/pdf", "targetMediaType": "image/png" }, {"sourceMediaType": "application/pdf", "targetMediaType": "image/png" },
{"sourceMediaType": "application/illustrator", "targetMediaType": "image/png" } {"sourceMediaType": "application/illustrator", "targetMediaType": "image/png" }
], ],
"transformOptions": [ "transformOptions": [
"pdfRendererOptions" "pdfRendererOptions"

View File

@ -3,232 +3,232 @@
{ {
"transformerName": "libreoffice", "transformerName": "libreoffice",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "text/csv", "targetMediaType": "text/html" }, {"sourceMediaType": "text/csv", "targetMediaType": "text/html" },
{"sourceMediaType": "text/csv", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "text/csv", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "text/csv", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "text/csv", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "text/csv", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "text/csv", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "text/csv", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "text/csv", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "text/csv", "maxSourceSizeBytes": 10485760, "targetMediaType": "application/pdf" }, {"sourceMediaType": "text/csv", "maxSourceSizeBytes": 10485760, "priority": 55, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/msword", "targetMediaType": "text/html" }, {"sourceMediaType": "application/msword", "targetMediaType": "text/html" },
{"sourceMediaType": "application/msword", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/msword", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/msword", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/msword", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/msword", "maxSourceSizeBytes": 10485760, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/msword", "maxSourceSizeBytes": 10485760, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "maxSourceSizeBytes": 786432, "targetMediaType": "application/pdf" },
{"sourceMediaType": "text/html", "targetMediaType": "application/msword" }, {"sourceMediaType": "text/html", "targetMediaType": "application/msword" },
{"sourceMediaType": "text/html", "targetMediaType": "text/html" }, {"sourceMediaType": "text/html", "priority": 55, "targetMediaType": "text/html" },
{"sourceMediaType": "text/html", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "text/html", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "text/html", "targetMediaType": "application/rtf" }, {"sourceMediaType": "text/html", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.graphics", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.graphics", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.graphics", "targetMediaType": "image/svg+xml" }, {"sourceMediaType": "application/vnd.oasis.opendocument.graphics", "targetMediaType": "image/svg+xml" },
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.ms-powerpoint", "maxSourceSizeBytes": 6291456, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-powerpoint", "maxSourceSizeBytes": 6291456, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/rtf", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/rtf", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/rtf", "targetMediaType": "text/html" }, {"sourceMediaType": "application/rtf", "targetMediaType": "text/html" },
{"sourceMediaType": "application/rtf", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/rtf", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/rtf", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/rtf", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "text/csv" }, {"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "text/csv" },
{"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.sun.xml.calc.template", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.sun.xml.impress.template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.sun.xml.impress.template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.sun.xml.impress.template", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.sun.xml.impress.template", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.sun.xml.impress.template", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.sun.xml.impress.template", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.sun.xml.impress.template", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.sun.xml.impress.template", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.sun.xml.writer.template", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "text/csv" }, {"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "text/csv" },
{"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.sun.xml.calc", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/vnd.oasis.opendocument.presentation" }, {"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/vnd.oasis.opendocument.presentation" },
{"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/vnd.ms-powerpoint" }, {"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/vnd.ms-powerpoint" },
{"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide" }, {"sourceMediaType": "application/vnd.sun.xml.impress", "targetMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide" },
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/pdf" },
{"sourceMediaType": "text/tab-separated-values", "targetMediaType": "text/html" }, {"sourceMediaType": "text/tab-separated-values", "priority": 55, "targetMediaType": "text/html" },
{"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "text/tab-separated-values", "targetMediaType": "text/csv" }, {"sourceMediaType": "text/tab-separated-values", "targetMediaType": "text/csv" },
{"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/pdf" }, {"sourceMediaType": "text/tab-separated-values", "targetMediaType": "application/pdf" },
{"sourceMediaType": "text/plain", "targetMediaType": "text/html" }, {"sourceMediaType": "text/plain", "targetMediaType": "text/html" },
{"sourceMediaType": "text/plain", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "text/plain", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "text/plain", "targetMediaType": "application/rtf" }, {"sourceMediaType": "text/plain", "targetMediaType": "application/rtf" },
{"sourceMediaType": "text/plain", "targetMediaType": "application/msword" }, {"sourceMediaType": "text/plain", "targetMediaType": "application/msword" },
{"sourceMediaType": "text/plain", "maxSourceSizeBytes": 5242880, "targetMediaType": "application/pdf" }, {"sourceMediaType": "text/plain", "maxSourceSizeBytes": 5242880, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.visio", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.visio", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "image/svg+xml" }, {"sourceMediaType": "application/vnd.visio", "targetMediaType": "image/svg+xml" },
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "application/vnd.oasis.opendocument.graphics" }, {"sourceMediaType": "application/vnd.visio", "targetMediaType": "application/vnd.oasis.opendocument.graphics" },
{"sourceMediaType": "application/vnd.visio2013", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.visio2013", "maxSourceSizeBytes": 4194304, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.visio2013", "targetMediaType": "image/svg+xml" }, {"sourceMediaType": "application/vnd.visio2013", "targetMediaType": "image/svg+xml" },
{"sourceMediaType": "application/vnd.visio2013", "targetMediaType": "application/vnd.oasis.opendocument.graphics" }, {"sourceMediaType": "application/vnd.visio2013", "targetMediaType": "application/vnd.oasis.opendocument.graphics" },
{"sourceMediaType": "application/wordperfect", "targetMediaType": "application/msword" }, {"sourceMediaType": "application/wordperfect", "targetMediaType": "application/msword" },
{"sourceMediaType": "application/wordperfect", "targetMediaType": "text/html" }, {"sourceMediaType": "application/wordperfect", "targetMediaType": "text/html" },
{"sourceMediaType": "application/wordperfect", "targetMediaType": "application/vnd.oasis.opendocument.text" }, {"sourceMediaType": "application/wordperfect", "targetMediaType": "application/vnd.oasis.opendocument.text" },
{"sourceMediaType": "application/wordperfect", "targetMediaType": "application/rtf" }, {"sourceMediaType": "application/wordperfect", "targetMediaType": "application/rtf" },
{"sourceMediaType": "application/wordperfect", "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/wordperfect", "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/csv" }, {"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/csv" },
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.ms-excel", "maxSourceSizeBytes": 10485760, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-excel", "maxSourceSizeBytes": 10485760, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/csv" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/csv" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/csv" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/csv" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/csv" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/csv" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/html" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/html" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/vnd.oasis.opendocument.spreadsheet-template" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/csv" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/csv" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/tab-separated-values" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/tab-separated-values" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/vnd.ms-excel" }, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/vnd.ms-excel" },
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" } {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "maxSourceSizeBytes": 1572864, "targetMediaType": "application/pdf" }
] ]
} }
] ]

View File

@ -87,7 +87,7 @@
<dependency> <dependency>
<groupId>org.bouncycastle</groupId> <groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId> <artifactId>bcprov-jdk15on</artifactId>
<version>1.62</version> <version>1.63</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.bouncycastle</groupId> <groupId>org.bouncycastle</groupId>

View File

@ -31,14 +31,12 @@ import static org.alfresco.transformer.executors.Tika.NOT_EXTRACT_BOOKMARKS_TEXT
import static org.alfresco.transformer.executors.Tika.PDF_BOX; import static org.alfresco.transformer.executors.Tika.PDF_BOX;
import static org.alfresco.transformer.executors.Tika.TARGET_ENCODING; import static org.alfresco.transformer.executors.Tika.TARGET_ENCODING;
import static org.alfresco.transformer.executors.Tika.TARGET_MIMETYPE; import static org.alfresco.transformer.executors.Tika.TARGET_MIMETYPE;
import static org.alfresco.transformer.executors.Tika.TRANSFORM_NAMES;
import static org.alfresco.transformer.fs.FileManager.createAttachment; import static org.alfresco.transformer.fs.FileManager.createAttachment;
import static org.alfresco.transformer.fs.FileManager.createSourceFile; import static org.alfresco.transformer.fs.FileManager.createSourceFile;
import static org.alfresco.transformer.fs.FileManager.createTargetFile; import static org.alfresco.transformer.fs.FileManager.createTargetFile;
import static org.alfresco.transformer.fs.FileManager.createTargetFileName; import static org.alfresco.transformer.fs.FileManager.createTargetFileName;
import static org.alfresco.transformer.util.MimetypeMap.MIMETYPE_TEXT_PLAIN; import static org.alfresco.transformer.util.MimetypeMap.MIMETYPE_TEXT_PLAIN;
import static org.alfresco.transformer.util.Util.stringToBoolean; import static org.alfresco.transformer.util.Util.stringToBoolean;
import static org.springframework.http.HttpStatus.BAD_REQUEST;
import static org.springframework.http.HttpStatus.OK; import static org.springframework.http.HttpStatus.OK;
import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE; import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
@ -47,7 +45,6 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.alfresco.transform.exceptions.TransformException;
import org.alfresco.transformer.executors.TikaJavaExecutor; import org.alfresco.transformer.executors.TikaJavaExecutor;
import org.alfresco.transformer.logging.LogEntry; import org.alfresco.transformer.logging.LogEntry;
import org.alfresco.transformer.probes.ProbeTestTransform; import org.alfresco.transformer.probes.ProbeTestTransform;
@ -121,43 +118,50 @@ public class TikaController extends AbstractTransformerController
@PostMapping(value = "/transform", consumes = MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/transform", consumes = MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Resource> transform(HttpServletRequest request, public ResponseEntity<Resource> transform(HttpServletRequest request,
@RequestParam("file") MultipartFile sourceMultipartFile, @RequestParam("file") final MultipartFile sourceMultipartFile,
@RequestParam("targetExtension") String targetExtension, @RequestParam("sourceMimetype") final String sourceMimetype,
@RequestParam("targetMimetype") String targetMimetype, @RequestParam("targetExtension") final String targetExtension,
@RequestParam("targetEncoding") String targetEncoding, @RequestParam("targetMimetype") final String targetMimetype,
@RequestParam("targetEncoding") final String targetEncoding,
@RequestParam(value = "timeout", required = false) Long timeout, @RequestParam(value = "timeout", required = false) final Long timeout,
@RequestParam(value = "testDelay", required = false) Long testDelay, @RequestParam(value = "testDelay", required = false) final Long testDelay,
@RequestParam(value = "transform") String transform, @RequestParam(value = "includeContents", required = false) final Boolean includeContents,
@RequestParam(value = "includeContents", required = false) Boolean includeContents, @RequestParam(value = "notExtractBookmarksText", required = false) final Boolean notExtractBookmarksText)
@RequestParam(value = "notExtractBookmarksText", required = false) Boolean notExtractBookmarksText)
{ {
if (!TRANSFORM_NAMES.contains(transform)) final String targetFilename = createTargetFileName(
{ sourceMultipartFile.getOriginalFilename(), targetExtension);
throw new TransformException(BAD_REQUEST.value(), "Invalid transform value");
}
String targetFilename = createTargetFileName(sourceMultipartFile.getOriginalFilename(),
targetExtension);
getProbeTestTransform().incrementTransformerCount(); getProbeTestTransform().incrementTransformerCount();
File sourceFile = createSourceFile(request, sourceMultipartFile);
File targetFile = createTargetFile(request, targetFilename); final File sourceFile = createSourceFile(request, sourceMultipartFile);
final File targetFile = createTargetFile(request, targetFilename);
// Both files are deleted by TransformInterceptor.afterCompletion // Both files are deleted by TransformInterceptor.afterCompletion
// TODO Consider streaming the request and response rather than using temporary files // TODO Consider streaming the request and response rather than using temporary files
// https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/streaming-response-body.html // https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/streaming-response-body.html
final Map<String, String> transformOptions = createTransformOptions(
"includeContents", includeContents,
"notExtractBookmarksText", notExtractBookmarksText,
"targetEncoding", targetEncoding);
final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype,
transformOptions);
javaExecutor.call(sourceFile, targetFile, transform, javaExecutor.call(sourceFile, targetFile, transform,
includeContents != null && includeContents ? INCLUDE_CONTENTS : null, includeContents != null && includeContents ? INCLUDE_CONTENTS : null,
notExtractBookmarksText != null && notExtractBookmarksText ? NOT_EXTRACT_BOOKMARKS_TEXT : null, notExtractBookmarksText != null && notExtractBookmarksText ? NOT_EXTRACT_BOOKMARKS_TEXT : null,
TARGET_MIMETYPE + targetMimetype, TARGET_ENCODING + targetEncoding); TARGET_MIMETYPE + targetMimetype, TARGET_ENCODING + targetEncoding);
final ResponseEntity<Resource> body = createAttachment(targetFilename, targetFile); final ResponseEntity<Resource> body = createAttachment(targetFilename, targetFile);
LogEntry.setTargetSize(targetFile.length()); LogEntry.setTargetSize(targetFile.length());
long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success"); long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success");
time += LogEntry.addDelay(testDelay); time += LogEntry.addDelay(testDelay);
getProbeTestTransform().recordTransformTime(time); getProbeTestTransform().recordTransformTime(time);
return body; return body;
} }
@ -169,11 +173,13 @@ public class TikaController extends AbstractTransformerController
logger.debug("Processing request with: sourceFile '{}', targetFile '{}', transformOptions" + logger.debug("Processing request with: sourceFile '{}', targetFile '{}', transformOptions" +
" '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout); " '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout);
final String transform = transformOptions.get("transform"); final Boolean includeContents = stringToBoolean(transformOptions.get("includeContents"));
final Boolean includeContents = stringToBoolean("includeContents"); final Boolean notExtractBookmarksText = stringToBoolean(
final Boolean notExtractBookmarksText = stringToBoolean("notExtractBookmarksText"); transformOptions.get("notExtractBookmarksText"));
final String targetEncoding = transformOptions.get("targetEncoding"); final String targetEncoding = transformOptions.get("targetEncoding");
final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype,
transformOptions);
javaExecutor.call(sourceFile, targetFile, transform, javaExecutor.call(sourceFile, targetFile, transform,
includeContents != null && includeContents ? INCLUDE_CONTENTS : null, includeContents != null && includeContents ? INCLUDE_CONTENTS : null,
notExtractBookmarksText != null && notExtractBookmarksText ? NOT_EXTRACT_BOOKMARKS_TEXT : null, notExtractBookmarksText != null && notExtractBookmarksText ? NOT_EXTRACT_BOOKMARKS_TEXT : null,

View File

@ -1,293 +1,504 @@
{ {
"transformOptions": { "transformOptions": {
"tikaOptions": [ "tikaOptions": [
{"value": {"name": "transform"}}, {"value": {"name": "targetEncoding"}}
],
"archiveOptions": [
{"value": {"name": "includeContents"}}, {"value": {"name": "includeContents"}},
{"value": {"name": "targetEncoding"}}
],
"pdfboxOptions": [
{"value": {"name": "notExtractBookmarksText"}}, {"value": {"name": "notExtractBookmarksText"}},
{"value": {"name": "targetMimetype"}},
{"value": {"name": "targetEncoding"}} {"value": {"name": "targetEncoding"}}
] ]
}, },
"transformers": [ "transformers": [
{ {
"transformerName": "tika", "transformerName": "Archive",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "application/x-cpio", "targetMediaType": "text/html"}, {"sourceMediaType": "application/x-cpio", "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-cpio", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/x-cpio", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-cpio", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/x-cpio", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-cpio", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/x-cpio", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/java-archive", "targetMediaType": "text/html"}, {"sourceMediaType": "application/java-archive", "targetMediaType": "text/html"},
{"sourceMediaType": "application/java-archive", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/java-archive", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/java-archive", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/java-archive", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/java-archive", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/java-archive", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-tar", "targetMediaType": "text/html"}, {"sourceMediaType": "application/x-tar", "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-tar", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/x-tar", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-tar", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/x-tar", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-tar", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/x-tar", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/zip", "targetMediaType": "text/html"}, {"sourceMediaType": "application/zip", "targetMediaType": "text/html"},
{"sourceMediaType": "application/zip", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/zip", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/zip", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/zip", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/zip", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/zip", "targetMediaType": "text/xml"}
],
"transformOptions": [
"archiveOptions"
]
},
{
"transformerName": "OutlookMsg",
"supportedSourceAndTargetList": [
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "text/xml"}
],
"transformOptions": [
"tikaOptions"
]
},
{
"transformerName": "PdfBox",
"supportedSourceAndTargetList": [
{"sourceMediaType": "application/pdf", "targetMediaType": "text/csv"},
{"sourceMediaType": "application/pdf", "targetMediaType": "text/html"},
{"sourceMediaType": "application/pdf", "maxSourceSizeBytes": 26214400, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/pdf", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/pdf", "targetMediaType": "text/xml"}
],
"transformOptions": [
"pdfboxOptions"
]
},
{
"transformerName": "Office",
"supportedSourceAndTargetList": [
{"sourceMediaType": "application/msword", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/msword", "priority": 60, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/msword", "priority": 60, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/msword", "priority": 60, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-netcdf", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-project", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-netcdf", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-project", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-netcdf", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-project", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-netcdf", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-project", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/msword", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-outlook", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/msword", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-outlook", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/msword", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-outlook", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/msword", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-outlook", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-powerpoint", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-powerpoint", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.visio", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.visio", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.visio", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.visio", "priority": 55, "targetMediaType": "text/xml"}
],
"transformOptions": [
"tikaOptions"
]
},
{
"transformerName": "Poi",
"supportedSourceAndTargetList": [
{"sourceMediaType": "application/vnd.ms-excel", "priority": 55, "targetMediaType": "text/csv"},
{"sourceMediaType": "application/vnd.ms-excel", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 55, "targetMediaType": "text/csv"},
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 65, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 60, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 60, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 60, "targetMediaType": "text/xml"}
],
"transformOptions": [
"tikaOptions"
]
},
{
"transformerName": "OOXML",
"supportedSourceAndTargetList": [
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-gzip", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-gzip", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-gzip", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-gzip", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-hdf", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-hdf", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-hdf", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-hdf", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "text/html", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "text/html", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "text/html", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "text/html", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "text/x-java-source", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "text/x-java-source", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "text/x-java-source", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "text/x-java-source", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/ogg", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/ogg", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/ogg", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/ogg", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "priority": 60, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "priority": 55, "targetMediaType": "text/xml"}
],
"transformOptions": [
"tikaOptions"
]
},
{
"transformerName": "TikaAuto",
"supportedSourceAndTargetList": [
{"sourceMediaType": "application/x-cpio", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-cpio", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-cpio", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-cpio", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/html"}, {"sourceMediaType": "application/java-archive", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/java-archive", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/java-archive", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/java-archive", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "text/html"}, {"sourceMediaType": "application/x-netcdf", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/x-netcdf", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/x-netcdf", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-netcdf", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/pdf", "targetMediaType": "text/html"}, {"sourceMediaType": "application/msword", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/pdf", "maxSourceSizeBytes": 26214400, "targetMediaType": "text/plain"}, {"sourceMediaType": "application/msword", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/pdf", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/msword", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/pdf", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/msword", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document" , "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "text/html"}, {"sourceMediaType": "application/x-gzip", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/x-gzip", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/x-gzip", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/x-gzip", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "text/html"}, {"sourceMediaType": "application/x-hdf", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/x-hdf", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/x-hdf", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/x-hdf", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "text/html", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/html", "priority": 60, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "text/html", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "text/html", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "text/html"}, {"sourceMediaType": "text/x-java-source", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/x-java-source", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "text/x-java-source", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "text/xml"}, {"sourceMediaType": "text/x-java-source", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/html"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/rtf", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "text/html"},
{"sourceMediaType": "application/rtf", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/rtf", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/rtf", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "text/xml"},
{"sourceMediaType": "text/xml", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "text/xml", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/xml", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "text/xml", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/html"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/ogg", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/ogg", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/ogg", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/ogg", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/html"}, {"sourceMediaType": "application/pdf", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/pdf", "maxSourceSizeBytes": 26214400, "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/pdf", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/pdf", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/xml"}, {"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "text/html"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "application/xhtml+xml"}, {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "text/xml"} {"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "text/html"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/rss+xml", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/rtf", "targetMediaType": "text/html"},
{"sourceMediaType": "application/rtf", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/rtf", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/rtf", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "text/xml"},
{"sourceMediaType": "text/plain", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "text/plain", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "text/plain", "priority": 55, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "text/plain", "priority": 55, "targetMediaType": "text/xml"},
{"sourceMediaType": "text/xml", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "text/xml", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "text/xml", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "text/xml", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "text/html"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "priority": 55, "targetMediaType": "text/html"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "text/xml"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/html"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/xml"}
],
"transformOptions": [
"tikaOptions"
]
},
{
"transformerName": "TextMining",
"supportedSourceAndTargetList": [
{"sourceMediaType": "application/msword", "priority": 65, "targetMediaType": "text/html"},
{"sourceMediaType": "application/msword", "priority": 65, "targetMediaType": "text/plain"},
{"sourceMediaType": "application/msword", "priority": 65, "targetMediaType": "application/xhtml+xml"},
{"sourceMediaType": "application/msword", "targetMediaType": "text/xml"}
], ],
"transformOptions": [ "transformOptions": [
"tikaOptions" "tikaOptions"

View File

@ -5,20 +5,8 @@
<h2>Tika Test Transformations</h2> <h2>Tika Test Transformations</h2>
<form method="POST" enctype="multipart/form-data" action="/transform"> <form method="POST" enctype="multipart/form-data" action="/transform">
<table> <table>
<tr><td><div style="text-align:right">transform *</div></td><td><select name="transform">
<option value="Archive">Archive</option>
<option value="OutlookMsg">OutlookMsg</option>
<option selected="selected" value="PdfBox">PdfBox</option>
<option value="Office">Office</option>
<option value="Poi">Poi</option>
<option value="OOXML">OOXML</option>
<option value="TikaAuto">TikaAuto</option>
<option value="TextMining">TextMining</option>
<option value="UNSET"></option>
<option value="BADVALUE">BADVALUE</option>
<option value="MIXED CASE TikaAuto">TikaAuto</option>
</select></td></tr>
<tr><td><div style="text-align:right">file *</div></td><td><input type="file" name="file" /></td></tr> <tr><td><div style="text-align:right">file *</div></td><td><input type="file" name="file" /></td></tr>
<tr><td><div style="text-align:right">sourceMimetype *</div></td><td><input type="text" name="sourceMimetype" value="application/msword" /></td></tr>
<tr><td><div style="text-align:right">targetExtension *</div></td><td><input type="text" name="targetExtension" value="txt" /></td></tr> <tr><td><div style="text-align:right">targetExtension *</div></td><td><input type="text" name="targetExtension" value="txt" /></td></tr>
<tr><td><div style="text-align:right">targetMimetype *</div></td><td><input type="text" name="targetMimetype" value="text/plain" /></td></tr> <tr><td><div style="text-align:right">targetMimetype *</div></td><td><input type="text" name="targetMimetype" value="text/plain" /></td></tr>
<tr><td><div style="text-align:right">targetEncoding *</div></td><td><input type="text" name="targetEncoding" value="UTF-8" /></td></tr> <tr><td><div style="text-align:right">targetEncoding *</div></td><td><input type="text" name="targetEncoding" value="UTF-8" /></td></tr>

View File

@ -236,7 +236,6 @@ public class TikaControllerTest extends AbstractTransformerControllerTest
{ {
// We don't use targetFileBytes as some of the transforms contain different date text based on the os being used. // We don't use targetFileBytes as some of the transforms contain different date text based on the os being used.
mockTransformCommand(sourceExtension, targetExtension, sourceMimetype, false); mockTransformCommand(sourceExtension, targetExtension, sourceMimetype, false);
this.transform = transform;
this.targetMimetype = targetMimetype; this.targetMimetype = targetMimetype;
System.out.println("Test " + transform + " " + sourceExtension + " to " + targetExtension); System.out.println("Test " + transform + " " + sourceExtension + " to " + targetExtension);
@ -261,9 +260,9 @@ public class TikaControllerTest extends AbstractTransformerControllerTest
String... params) String... params)
{ {
return super.mockMvcRequest(url, sourceFile, params) return super.mockMvcRequest(url, sourceFile, params)
.param("transform", transform)
.param("targetEncoding", targetEncoding) .param("targetEncoding", targetEncoding)
.param("targetMimetype", targetMimetype); .param("targetMimetype", targetMimetype)
.param("sourceMimetype", sourceMimetype);
} }
@Test @Test
@ -540,8 +539,6 @@ public class TikaControllerTest extends AbstractTransformerControllerTest
transformRequest.setTargetExtension(targetExtension); transformRequest.setTargetExtension(targetExtension);
transformRequest.setSourceMediaType(APPLICATION_PDF_VALUE); transformRequest.setSourceMediaType(APPLICATION_PDF_VALUE);
transformRequest.setTargetMediaType(TEXT_PLAIN_VALUE); transformRequest.setTargetMediaType(TEXT_PLAIN_VALUE);
transformRequest.getTransformRequestOptions().put("transform", "PdfBox");
transformRequest.getTransformRequestOptions().put("targetMimetype", TEXT_PLAIN_VALUE);
transformRequest.getTransformRequestOptions().put("targetEncoding", "UTF-8"); transformRequest.getTransformRequestOptions().put("targetEncoding", "UTF-8");
} }
@ -563,6 +560,7 @@ public class TikaControllerTest extends AbstractTransformerControllerTest
transformRequest.setSourceExtension(sourceExtension); transformRequest.setSourceExtension(sourceExtension);
transformRequest.setSourceSize(sourceFile.length()); transformRequest.setSourceSize(sourceFile.length());
transformRequest.setTargetExtension(targetExtension); transformRequest.setTargetExtension(targetExtension);
transformRequest.setSourceMediaType(sourceMimetype);
// HTTP Request // HTTP Request
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();

View File

@ -26,10 +26,16 @@
*/ */
package org.alfresco.transformer; package org.alfresco.transformer;
import static org.springframework.http.MediaType.MULTIPART_FORM_DATA;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.LinkedMultiValueMap;
/** /**
* Tests TikaController with a server test harness. * Tests TikaController with a server test harness.
@ -49,4 +55,22 @@ public class TikaHttpRequestTest extends AbstractHttpRequestTest
{ {
return "pdf"; return "pdf";
} }
// Override method as Tika requires sourceMimetype
// If not provided then sourceMimetype request parameter error will be thrown.
@Override
protected void assertTransformError(boolean addFile, String errorMessage)
{
LinkedMultiValueMap<String, Object> parameters = new LinkedMultiValueMap<>();
if (addFile)
{
parameters.add("file", new ClassPathResource("quick." + getSourceExtension()));
}
parameters.add("sourceMimetype", "application/pdf");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MULTIPART_FORM_DATA);
HttpEntity<LinkedMultiValueMap<String, Object>> entity = new HttpEntity<>(parameters,
headers);
super.sendTranformationRequest(entity, errorMessage);
}
} }

View File

@ -66,14 +66,14 @@ public class TikaTransformationIT
private final String sourceFile; private final String sourceFile;
private final String targetExtension; private final String targetExtension;
private final String targetMimetype; private final String targetMimetype;
private final String transform; private final String sourceMimetype;
public TikaTransformationIT(final Triple<String, String, String> entry) public TikaTransformationIT(final Triple<String, String, String> entry)
{ {
sourceFile = entry.getLeft(); sourceFile = entry.getLeft();
targetExtension = entry.getMiddle(); targetExtension = entry.getMiddle();
targetMimetype = extensionMimetype.get(entry.getMiddle()); targetMimetype = extensionMimetype.get(entry.getMiddle());
transform = entry.getRight(); sourceMimetype = entry.getRight();
} }
// TODO unit tests for the following file types (for which is difficult to find file samples): // TODO unit tests for the following file types (for which is difficult to find file samples):
@ -87,57 +87,58 @@ public class TikaTransformationIT
{ {
return Stream return Stream
.of( .of(
allTargets("quick.doc", "Office"), allTargets("quick.doc", "application/msword"),
allTargets("quick.docx", "TikaAuto"), allTargets("quick.docx",
allTargets("quick.html", "TikaAuto"), "application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
allTargets("quick.jar", "TikaAuto"), allTargets("quick.html", "text/html"),
allTargets("quick.java", "TikaAuto"), allTargets("quick.jar", "application/java-archive"),
allTargets("quick.java", "text/x-java-source"),
Stream.of( Stream.of(
Triple.of("quick.key", "html", "TikaAuto"), Triple.of("quick.key", "html", "application/vnd.apple.keynote"),
// Does not work, alfresco-docker-transform-misc can handle this target mimetype, removed from engine_config.json // Does not work, alfresco-docker-sourceMimetype-misc can handle this target mimetype, removed from engine_config.json
// Triple.of("quick.key", "txt", "TikaAuto"), // Triple.of("quick.key", "txt", "TikaAuto"),
Triple.of("quick.key", "xhtml", "TikaAuto"), Triple.of("quick.key", "xhtml", "application/vnd.apple.keynote"),
Triple.of("quick.key", "xml", "TikaAuto") Triple.of("quick.key", "xml", "application/vnd.apple.keynote")
), ),
allTargets("quick.msg", "OutlookMsg"), allTargets("quick.msg", "application/vnd.ms-outlook"),
Stream.of( Stream.of(
Triple.of("quick.numbers", "html", "TikaAuto"), Triple.of("quick.numbers", "html", "application/vnd.apple.numbers"),
// Does not work, alfresco-docker-transform-misc can handle this target mimetype, removed from engine_config.json // Does not work, alfresco-docker-sourceMimetype-misc can handle this target mimetype, removed from engine_config.json
// Triple.of("quick.numbers", "txt", "TikaAuto"), // Triple.of("quick.numbers", "txt", "TikaAuto"),
Triple.of("quick.numbers", "xhtml", "TikaAuto"), Triple.of("quick.numbers", "xhtml", "application/vnd.apple.numbers"),
Triple.of("quick.numbers", "xml", "TikaAuto") Triple.of("quick.numbers", "xml", "application/vnd.apple.numbers")
), ),
allTargets("quick.odp", "TikaAuto"), allTargets("quick.odp", "application/vnd.oasis.opendocument.presentation"),
allTargets("quick.ods", "TikaAuto"), allTargets("quick.ods", "application/vnd.oasis.opendocument.spreadsheet"),
allTargets("quick.odt", "TikaAuto"), allTargets("quick.odt", "application/vnd.oasis.opendocument.text"),
allTargets("quick.otp", "TikaAuto"), allTargets("quick.otp", "application/vnd.oasis.opendocument.presentation-template"),
allTargets("quick.ots", "TikaAuto"), allTargets("quick.ots", "application/vnd.oasis.opendocument.spreadsheet-template"),
allTargets("quick.ott", "TikaAuto"), allTargets("quick.ott", "application/vnd.oasis.opendocument.text-template"),
Stream.of( Stream.of(
Triple.of("quick.pages", "html", "TikaAuto"), Triple.of("quick.pages", "html", "application/vnd.apple.pages"),
// Does not work, alfresco-docker-transform-misc can handle this target mimetype, removed from engine_config.json // Does not work, alfresco-docker-sourceMimetype-misc can handle this target mimetype, removed from engine_config.json
// Triple.of("quick.pages", "txt", "TikaAuto"), // Triple.of("quick.pages", "txt", "TikaAuto"),
Triple.of("quick.pages", "xhtml", "TikaAuto"), Triple.of("quick.pages", "xhtml", "application/vnd.apple.pages"),
Triple.of("quick.pages", "xml", "TikaAuto") Triple.of("quick.pages", "xml", "application/vnd.apple.pages")
), ),
allTargets("quick.pdf", "TikaAuto"), allTargets("quick.pdf", "application/pdf"),
allTargets("quick.ppt", "TikaAuto"), allTargets("quick.ppt", "application/vnd.ms-powerpoint"),
allTargets("quick.pptx", "TikaAuto"), allTargets("quick.pptx",
allTargets("quick.sxw", "TikaAuto"), "application/vnd.openxmlformats-officedocument.presentationml.presentation"),
allTargets("quick.txt", "TikaAuto"), allTargets("quick.sxw", "application/vnd.sun.xml.writer"),
allTargets("quick.vsd", "TikaAuto"), allTargets("quick.txt", "text/plain"),
allTargets("quick.xls", "TikaAuto"), allTargets("quick.vsd", "application/vnd.visio"),
allTargets("quick.xslx", "TikaAuto"), allTargets("quick.xls", "application/vnd.ms-excel"),
allTargets("quick.zip", "TikaAuto"), allTargets("quick.xslx",
allTargets("quick.zip", "Archive"), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
allTargets("quick.jar", "Archive"), allTargets("quick.zip", "application/zip"),
allTargets("quick.tar", "Archive"), allTargets("quick.tar", "application/x-tar"),
allTargets("sample.rtf", "TikaAuto"), allTargets("sample.rtf", "application/rtf"),
allTargets("quick.xml", "TikaAuto"), allTargets("quick.xml", "text/xml"),
allTargets("sample.xhtml.txt", "TikaAuto"), allTargets("sample.xhtml.txt", "application/xhtml+xml"),
allTargets("sample.rss", "TikaAuto"), allTargets("sample.rss", "application/rss+xml"),
//allTargets("quick.rar", "TikaAuto"), //allTargets("quick.rar", "application/x-rar-compressed"),
allTargets("quick.tar.gz", "TikaAuto")) allTargets("quick.tar.gz", "application/x-gzip"))
.flatMap(identity()) .flatMap(identity())
.collect(toSet()); .collect(toSet());
} }
@ -145,15 +146,15 @@ public class TikaTransformationIT
@Test @Test
public void testTransformation() public void testTransformation()
{ {
final String descriptor = format("Transform ({0} -> {1}, {2}, transform={3})", final String descriptor = format("Transform ({0} -> {1}, {2}, sourceMimetype={3})",
sourceFile, targetMimetype, targetExtension, transform); sourceFile, targetMimetype, targetExtension, sourceMimetype);
try try
{ {
final ResponseEntity<Resource> response = sendTRequest(ENGINE_URL, sourceFile, null, final ResponseEntity<Resource> response = sendTRequest(ENGINE_URL, sourceFile, null,
targetMimetype, targetExtension, ImmutableMap.of( targetMimetype, targetExtension, ImmutableMap.of(
"targetEncoding", "UTF-8", "targetEncoding", "UTF-8",
"transform", transform)); "sourceMimetype", sourceMimetype));
assertEquals(descriptor, OK, response.getStatusCode()); assertEquals(descriptor, OK, response.getStatusCode());
} }
catch (Exception e) catch (Exception e)
@ -163,11 +164,11 @@ public class TikaTransformationIT
} }
private static Stream<Triple<String, String, String>> allTargets(final String sourceFile, private static Stream<Triple<String, String, String>> allTargets(final String sourceFile,
final String transform) final String sourceMimetype)
{ {
return extensionMimetype return extensionMimetype
.keySet() .keySet()
.stream() .stream()
.map(k -> Triple.of(sourceFile, k, transform)); .map(k -> Triple.of(sourceFile, k, sourceMimetype));
} }
} }

View File

@ -33,7 +33,6 @@ import static org.alfresco.transformer.fs.FileManager.createSourceFile;
import static org.alfresco.transformer.fs.FileManager.createTargetFile; import static org.alfresco.transformer.fs.FileManager.createTargetFile;
import static org.alfresco.transformer.fs.FileManager.createTargetFileName; import static org.alfresco.transformer.fs.FileManager.createTargetFileName;
import static org.alfresco.transformer.transformers.HtmlParserContentTransformer.SOURCE_ENCODING; import static org.alfresco.transformer.transformers.HtmlParserContentTransformer.SOURCE_ENCODING;
import static org.alfresco.transformer.transformers.HtmlParserContentTransformer.TARGET_ENCODING;
import static org.springframework.http.HttpStatus.OK; import static org.springframework.http.HttpStatus.OK;
import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE; import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
@ -90,9 +89,8 @@ public class MiscController extends AbstractTransformerController
{ {
Map<String, String> parameters = new HashMap<>(); Map<String, String> parameters = new HashMap<>();
parameters.put(SOURCE_ENCODING, "UTF-8"); parameters.put(SOURCE_ENCODING, "UTF-8");
parameters.put(TARGET_ENCODING, "UTF-8"); transformer.transform("html", sourceFile, targetFile, MIMETYPE_HTML,
transformer.transform(sourceFile, targetFile, MIMETYPE_HTML, MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN, parameters);
parameters);
} }
}; };
} }
@ -109,7 +107,9 @@ public class MiscController extends AbstractTransformerController
" '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout); " '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout);
} }
transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype,
transformOptions);
transformer.transform(transform, sourceFile, targetFile, sourceMimetype, targetMimetype,
transformOptions); transformOptions);
} }
@ -118,15 +118,19 @@ public class MiscController extends AbstractTransformerController
@RequestParam("file") MultipartFile sourceMultipartFile, @RequestParam("file") MultipartFile sourceMultipartFile,
@RequestParam("targetExtension") String targetExtension, @RequestParam("targetExtension") String targetExtension,
@RequestParam("targetMimetype") String targetMimetype, @RequestParam("targetMimetype") String targetMimetype,
@RequestParam(value = "targetEncoding", required = false) String targetEncoding,
@RequestParam("sourceMimetype") String sourceMimetype, @RequestParam("sourceMimetype") String sourceMimetype,
@RequestParam(value = "testDelay", required = false) Long testDelay, @RequestParam(value = "sourceEncoding", required = false) String sourceEncoding,
@RequestParam Map<String, String> parameters) @RequestParam(value = "pageLimit", required = false) String pageLimit,
@RequestParam(value = "testDelay", required = false) Long testDelay)
{ {
if (logger.isDebugEnabled()) if (logger.isDebugEnabled())
{ {
logger.debug( logger.debug(
"Processing request with: sourceMimetype '{}', targetMimetype '{}' , targetExtension '{}' " + "Processing request with: sourceMimetype '{}', sourceEncoding '{}', " +
", parameters '{}'", sourceMimetype, targetMimetype, targetExtension, parameters); "targetMimetype '{}', targetExtension '{}', targetEncoding '{}', pageLimit '{}'",
sourceMimetype, sourceEncoding, targetMimetype, targetExtension, targetEncoding,
pageLimit);
} }
final String targetFilename = createTargetFileName( final String targetFilename = createTargetFileName(
@ -135,7 +139,15 @@ public class MiscController extends AbstractTransformerController
final File sourceFile = createSourceFile(request, sourceMultipartFile); final File sourceFile = createSourceFile(request, sourceMultipartFile);
final File targetFile = createTargetFile(request, targetFilename); final File targetFile = createTargetFile(request, targetFilename);
transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, parameters); final Map<String, String> transformOptions = createTransformOptions(
"sourceEncoding", sourceEncoding,
"targetEncoding", targetEncoding,
"pageLimit", pageLimit);
final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype,
transformOptions);
transformer.transform(transform, sourceFile, targetFile, sourceMimetype, targetMimetype,
transformOptions);
final ResponseEntity<Resource> body = createAttachment(targetFilename, targetFile); final ResponseEntity<Resource> body = createAttachment(targetFilename, targetFile);
LogEntry.setTargetSize(targetFile.length()); LogEntry.setTargetSize(targetFile.length());

View File

@ -27,9 +27,6 @@
package org.alfresco.transformer.transformers; package org.alfresco.transformer.transformers;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_JPEG; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_JPEG;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_KEYNOTE;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_NUMBERS;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_PAGES;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.File; import java.io.File;
@ -76,15 +73,6 @@ public class AppleIWorksContentTransformer implements SelectableTransformer
// (225 x 173) preview-web.jpg // (225 x 173) preview-web.jpg
// (53 x 41) preview-micro.jpg // (53 x 41) preview-micro.jpg
@Override
public boolean isTransformable(String sourceMimetype, String targetMimetype,
Map<String, String> parameters)
{
return MIMETYPE_IWORK_KEYNOTE.equals(sourceMimetype) ||
MIMETYPE_IWORK_NUMBERS.equals(sourceMimetype) ||
MIMETYPE_IWORK_PAGES.equals(sourceMimetype);
}
@Override @Override
public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, public void transform(final File sourceFile, final File targetFile, final String sourceMimetype,
final String targetMimetype, final Map<String, String> parameters) final String targetMimetype, final Map<String, String> parameters)

View File

@ -26,19 +26,13 @@
*/ */
package org.alfresco.transformer.transformers; package org.alfresco.transformer.transformers;
import org.alfresco.transformer.fs.FileManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_HTML; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_HTML;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_MULTIPART_ALTERNATIVE; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_MULTIPART_ALTERNATIVE;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_RFC822;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileWriter; import java.io.FileWriter;
@ -55,6 +49,9 @@ import javax.mail.Part;
import javax.mail.Session; import javax.mail.Session;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
import org.alfresco.transformer.fs.FileManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* Uses javax.mail.MimeMessage to generate plain text versions of RFC822 email * Uses javax.mail.MimeMessage to generate plain text versions of RFC822 email
@ -67,47 +64,33 @@ import javax.mail.internet.MimeMessage;
* <p> * <p>
* This code is based on a class of the same name originally implemented in alfresco-repository. * This code is based on a class of the same name originally implemented in alfresco-repository.
* </p> * </p>
*
*/ */
public class EMLTransformer implements SelectableTransformer public class EMLTransformer implements SelectableTransformer
{ {
private static final Logger logger = LoggerFactory.getLogger( EMLTransformer.class); private static final Logger logger = LoggerFactory.getLogger(EMLTransformer.class);
private static final String CHARSET = "charset"; private static final String CHARSET = "charset";
private static final String DEFAULT_ENCODING = "UTF-8"; private static final String DEFAULT_ENCODING = "UTF-8";
@Override
public boolean isTransformable(String sourceMimetype, String targetMimetype, Map<String, String> parameters)
{
if (!MIMETYPE_RFC822.equals(sourceMimetype)
|| !MIMETYPE_TEXT_PLAIN.equals(targetMimetype))
{
// only support RFC822 -> TEXT
return false;
}
else
{
return true;
}
}
@Override @Override
public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, public void transform(final File sourceFile, final File targetFile, final String sourceMimetype,
final String targetMimetype, final Map<String, String> parameters) throws Exception final String targetMimetype, final Map<String, String> parameters) throws Exception
{ {
logger.debug("Performing RFC822 to text transform."); logger.debug("Performing RFC822 to text transform.");
// Use try with resource // Use try with resource
try (InputStream contentInputStream = new BufferedInputStream( new FileInputStream(sourceFile)); try (InputStream contentInputStream = new BufferedInputStream(
new FileInputStream(sourceFile));
Writer bufferedFileWriter = new BufferedWriter(new FileWriter(targetFile))) Writer bufferedFileWriter = new BufferedWriter(new FileWriter(targetFile)))
{ {
MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()), contentInputStream); MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()),
contentInputStream);
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
Object content = mimeMessage.getContent(); Object content = mimeMessage.getContent();
if (content instanceof Multipart) if (content instanceof Multipart)
{ {
processMultiPart((Multipart) content,sb); processMultiPart((Multipart) content, sb);
} }
else else
{ {
@ -121,13 +104,15 @@ public class EMLTransformer implements SelectableTransformer
* Find "text" parts of message recursively and appends it to sb StringBuilder * Find "text" parts of message recursively and appends it to sb StringBuilder
* *
* @param multipart Multipart to process * @param multipart Multipart to process
* @param sb StringBuilder * @param sb StringBuilder
* @throws MessagingException * @throws MessagingException
* @throws IOException * @throws IOException
*/ */
private void processMultiPart(Multipart multipart, StringBuilder sb) throws MessagingException, IOException private void processMultiPart(Multipart multipart, StringBuilder sb) throws MessagingException,
IOException
{ {
boolean isAlternativeMultipart = multipart.getContentType().contains(MIMETYPE_MULTIPART_ALTERNATIVE); boolean isAlternativeMultipart = multipart.getContentType().contains(
MIMETYPE_MULTIPART_ALTERNATIVE);
if (isAlternativeMultipart) if (isAlternativeMultipart)
{ {
processAlternativeMultipart(multipart, sb); processAlternativeMultipart(multipart, sb);
@ -157,7 +142,8 @@ public class EMLTransformer implements SelectableTransformer
* @throws IOException * @throws IOException
* @throws MessagingException * @throws MessagingException
*/ */
private void processAlternativeMultipart(Multipart multipart, StringBuilder sb) throws IOException, MessagingException private void processAlternativeMultipart(Multipart multipart, StringBuilder sb) throws
IOException, MessagingException
{ {
Part partToUse = null; Part partToUse = null;
for (int i = 0, n = multipart.getCount(); i < n; i++) for (int i = 0, n = multipart.getCount(); i < n; i++)
@ -168,7 +154,7 @@ public class EMLTransformer implements SelectableTransformer
partToUse = part; partToUse = part;
break; break;
} }
else if (part.getContentType().contains(MIMETYPE_HTML)) else if (part.getContentType().contains(MIMETYPE_HTML))
{ {
partToUse = part; partToUse = part;
} }
@ -211,9 +197,11 @@ public class EMLTransformer implements SelectableTransformer
String mailPartContent = part.getContent().toString(); String mailPartContent = part.getContent().toString();
//create a temporary html file with same mail part content and encoding //create a temporary html file with same mail part content and encoding
File tempHtmlFile = FileManager.TempFileProvider.createTempFile("EMLTransformer_", ".html"); File tempHtmlFile = FileManager.TempFileProvider.createTempFile("EMLTransformer_",
".html");
String encoding = getMailPartContentEncoding(part); String encoding = getMailPartContentEncoding(part);
try (OutputStreamWriter osWriter = new OutputStreamWriter( new FileOutputStream( tempHtmlFile), encoding)) try (OutputStreamWriter osWriter = new OutputStreamWriter(
new FileOutputStream(tempHtmlFile), encoding))
{ {
osWriter.write(mailPartContent); osWriter.write(mailPartContent);
} }
@ -237,9 +225,9 @@ public class EMLTransformer implements SelectableTransformer
int startIndex = contentType.indexOf(CHARSET); int startIndex = contentType.indexOf(CHARSET);
if (startIndex > 0) if (startIndex > 0)
{ {
encoding = contentType.substring(startIndex + CHARSET.length() + 1).replaceAll("\"", ""); encoding = contentType.substring(startIndex + CHARSET.length() + 1)
.replaceAll("\"", "");
} }
return encoding; return encoding;
} }
} }

View File

@ -26,9 +26,6 @@
*/ */
package org.alfresco.transformer.transformers; package org.alfresco.transformer.transformers;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_HTML;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -77,13 +74,6 @@ public class HtmlParserContentTransformer implements SelectableTransformer
private static final Logger logger = LoggerFactory.getLogger( private static final Logger logger = LoggerFactory.getLogger(
HtmlParserContentTransformer.class); HtmlParserContentTransformer.class);
@Override
public boolean isTransformable(String sourceMimetype, String targetMimetype,
Map<String, String> parameters)
{
return MIMETYPE_HTML.equals(sourceMimetype) && MIMETYPE_TEXT_PLAIN.equals(targetMimetype);
}
@Override @Override
public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, public void transform(final File sourceFile, final File targetFile, final String sourceMimetype,
final String targetMimetype, final Map<String, String> parameters) throws Exception final String targetMimetype, final Map<String, String> parameters) throws Exception

View File

@ -26,33 +26,11 @@
*/ */
package org.alfresco.transformer.transformers; package org.alfresco.transformer.transformers;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_JPEG;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_ADDIN;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_SLIDE;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_SLIDESHOW;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_SLIDESHOW_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_SLIDE_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_TEMPLATE;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION_TEMPLATE_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_SPREADSHEET;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_SPREADSHEET_ADDIN_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_SPREADSHEET_BINARY_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_SPREADSHEET_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_SPREADSHEET_TEMPLATE;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_SPREADSHEET_TEMPLATE_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_WORDPROCESSING;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_WORDPROCESSING_MACRO;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_WORD_TEMPLATE;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_WORD_TEMPLATE_MACRO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.OPCPackage;
@ -63,8 +41,6 @@ import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.common.collect.ImmutableList;
/** /**
* Extracts out Thumbnail JPEGs from OOXML files for thumbnailing and previewing. * Extracts out Thumbnail JPEGs from OOXML files for thumbnailing and previewing.
* This transformer will only work for OOXML files where thumbnailing was enabled, * This transformer will only work for OOXML files where thumbnailing was enabled,
@ -82,36 +58,6 @@ public class OOXMLThumbnailContentTransformer implements SelectableTransformer
private static final Logger logger = LoggerFactory.getLogger( private static final Logger logger = LoggerFactory.getLogger(
OOXMLThumbnailContentTransformer.class); OOXMLThumbnailContentTransformer.class);
private static final List<String> OOXML_MIMETYPES = ImmutableList.of(
MIMETYPE_OPENXML_WORDPROCESSING,
MIMETYPE_OPENXML_WORDPROCESSING_MACRO,
MIMETYPE_OPENXML_WORD_TEMPLATE,
MIMETYPE_OPENXML_WORD_TEMPLATE_MACRO,
MIMETYPE_OPENXML_PRESENTATION,
MIMETYPE_OPENXML_PRESENTATION_MACRO,
MIMETYPE_OPENXML_PRESENTATION_SLIDESHOW,
MIMETYPE_OPENXML_PRESENTATION_SLIDESHOW_MACRO,
MIMETYPE_OPENXML_PRESENTATION_TEMPLATE,
MIMETYPE_OPENXML_PRESENTATION_TEMPLATE_MACRO,
MIMETYPE_OPENXML_PRESENTATION_ADDIN,
MIMETYPE_OPENXML_PRESENTATION_SLIDE,
MIMETYPE_OPENXML_PRESENTATION_SLIDE_MACRO,
MIMETYPE_OPENXML_SPREADSHEET,
MIMETYPE_OPENXML_SPREADSHEET_TEMPLATE,
MIMETYPE_OPENXML_SPREADSHEET_MACRO,
MIMETYPE_OPENXML_SPREADSHEET_TEMPLATE_MACRO,
MIMETYPE_OPENXML_SPREADSHEET_ADDIN_MACRO,
MIMETYPE_OPENXML_SPREADSHEET_BINARY_MACRO);
@Override
public boolean isTransformable(String sourceMimetype, String targetMimetype,
Map<String, String> parameters)
{
// only support [OOXML] -> JPEG
return MIMETYPE_IMAGE_JPEG.equals(targetMimetype) &&
OOXML_MIMETYPES.contains(sourceMimetype);
}
@Override @Override
public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, public void transform(final File sourceFile, final File targetFile, final String sourceMimetype,
final String targetMimetype, final Map<String, String> parameters) throws Exception final String targetMimetype, final Map<String, String> parameters) throws Exception

View File

@ -49,15 +49,4 @@ public interface SelectableTransformer
*/ */
void transform(File sourceFile, File targetFile, String sourceMimetype, void transform(File sourceFile, File targetFile, String sourceMimetype,
String targetMimetype, Map<String, String> parameters) throws Exception; String targetMimetype, Map<String, String> parameters) throws Exception;
/**
* Determine whether this transformer is applicable for the given MIME types.
*
* @param sourceMimetype
* @param targetMimetype
* @param parameters
* @return
*/
boolean isTransformable(String sourceMimetype, String targetMimetype,
Map<String, String> parameters);
} }

View File

@ -30,7 +30,6 @@ import static org.springframework.http.HttpStatus.BAD_REQUEST;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
import java.io.File; import java.io.File;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.StringJoiner; import java.util.StringJoiner;
@ -40,7 +39,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap;
/** /**
* The SelectingTransformer selects a registered {@link SelectableTransformer} * The SelectingTransformer selects a registered {@link SelectableTransformer}
@ -53,35 +52,31 @@ public class SelectingTransformer
{ {
private static final Logger logger = LoggerFactory.getLogger(SelectingTransformer.class); private static final Logger logger = LoggerFactory.getLogger(SelectingTransformer.class);
private final List<SelectableTransformer> transformers; private final Map<String, SelectableTransformer> transformers = ImmutableMap
.<String, SelectableTransformer>builder()
public SelectingTransformer() .put("appleIWorks", new AppleIWorksContentTransformer())
{ .put("html", new HtmlParserContentTransformer())
transformers = ImmutableList.of( .put("string", new StringExtractingContentTransformer())
new AppleIWorksContentTransformer(), .put("textToPdf", new TextToPdfContentTransformer())
new HtmlParserContentTransformer(), .put("rfc822", new EMLTransformer())
new StringExtractingContentTransformer(), .put("ooXmlThumbnail", new OOXMLThumbnailContentTransformer())
new TextToPdfContentTransformer(), .build();
new EMLTransformer()
// new OOXMLThumbnailContentTransformer()); // Doesn't work with java 11, transformer and test disabled
);
}
/** /**
* Performs a transform using a transformer selected based on the provided sourceMimetype and targetMimetype * Performs a transform using a transformer selected based on the provided sourceMimetype and targetMimetype
* *
* @param transform the name of the transformer
* @param sourceFile File to transform from * @param sourceFile File to transform from
* @param targetFile File to transform to * @param targetFile File to transform to
* @param sourceMimetype Mimetype of the source file * @param sourceMimetype Mimetype of the source file
* @throws TransformException * @throws TransformException if there was a problem internally
*/ */
public void transform(File sourceFile, File targetFile, String sourceMimetype, public void transform(String transform, File sourceFile, File targetFile, String sourceMimetype,
String targetMimetype, Map<String, String> parameters) throws TransformException String targetMimetype, Map<String, String> parameters) throws TransformException
{ {
try try
{ {
final SelectableTransformer transformer = selectTransformer(sourceMimetype, final SelectableTransformer transformer = transformers.get(transform);
targetMimetype, parameters);
logOptions(sourceFile, targetFile, parameters); logOptions(sourceFile, targetFile, parameters);
transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype,
parameters); parameters);
@ -106,23 +101,6 @@ public class SelectingTransformer
} }
} }
private SelectableTransformer selectTransformer(String sourceMimetype, String targetMimetype,
Map<String, String> parameters)
{
for (SelectableTransformer transformer : transformers)
{
if (transformer.isTransformable(sourceMimetype, targetMimetype, parameters))
{
logger.debug("Using {} to transform from {} to {}",
transformer.getClass().getName(), sourceMimetype, targetMimetype);
return transformer;
}
}
throw new RuntimeException(
"Could not select a transformer for sourceMimetype=" + sourceMimetype
+ " targetMimetype=" + targetMimetype);
}
private static String getMessage(Exception e) private static String getMessage(Exception e)
{ {
return e.getMessage() == null || e.getMessage().isEmpty() ? e.getClass().getSimpleName() : e.getMessage(); return e.getMessage() == null || e.getMessage().isEmpty() ? e.getClass().getSimpleName() : e.getMessage();

View File

@ -26,10 +26,6 @@
*/ */
package org.alfresco.transformer.transformers; package org.alfresco.transformer.transformers;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_DITA;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_JAVASCRIPT;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
@ -64,16 +60,6 @@ public class StringExtractingContentTransformer implements SelectableTransformer
private static final Log logger = LogFactory.getLog(StringExtractingContentTransformer.class); private static final Log logger = LogFactory.getLog(StringExtractingContentTransformer.class);
@Override
public boolean isTransformable(String sourceMimetype, String targetMimetype,
Map<String, String> parameters)
{
return (sourceMimetype.startsWith("text/")
|| MIMETYPE_JAVASCRIPT.equals(sourceMimetype)
|| MIMETYPE_DITA.equals(sourceMimetype))
&& MIMETYPE_TEXT_PLAIN.equals(targetMimetype);
}
/** /**
* Text to text conversions are done directly using the content reader and writer string * Text to text conversions are done directly using the content reader and writer string
* manipulation methods. * manipulation methods.

View File

@ -26,12 +26,6 @@
*/ */
package org.alfresco.transformer.transformers; package org.alfresco.transformer.transformers;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_DITA;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_PDF;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_CSV;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_XML;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
@ -103,17 +97,6 @@ public class TextToPdfContentTransformer implements SelectableTransformer
} }
} }
@Override
public boolean isTransformable(String sourceMimetype, String targetMimetype,
Map<String, String> parameters)
{
return (MIMETYPE_TEXT_PLAIN.equals(sourceMimetype) ||
MIMETYPE_TEXT_CSV.equals(sourceMimetype) ||
MIMETYPE_DITA.equals(sourceMimetype) ||
MIMETYPE_XML.equals(sourceMimetype)) &&
MIMETYPE_PDF.equals(targetMimetype);
}
@Override @Override
public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, public void transform(final File sourceFile, final File targetFile, final String sourceMimetype,
final String targetMimetype, final Map<String, String> parameters) throws Exception final String targetMimetype, final Map<String, String> parameters) throws Exception

View File

@ -16,7 +16,7 @@
{ {
"transformerName": "html", "transformerName": "html",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "text/html", "targetMediaType": "text/plain"} {"sourceMediaType": "text/html", "targetMediaType": "text/plain"}
], ],
"transformOptions": [ "transformOptions": [
"htmlOptions" "htmlOptions"
@ -25,23 +25,22 @@
{ {
"transformerName": "string", "transformerName": "string",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "text/plain", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/plain", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/mediawiki", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/mediawiki", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/css", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/css", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/csv", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/csv", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/javascript", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/xml", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/xml", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/html", "priority": 55, "targetMediaType": "text/plain"},
{"sourceMediaType": "text/html", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/richtext", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/richtext", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/sgml", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/sgml", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/tab-separated-values", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/tab-separated-values", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/x-setext", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/x-setext", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/x-java-source", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/x-java-source", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/x-jsp", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/x-jsp", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/x-markdown", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/x-markdown", "targetMediaType": "text/plain"}, {"sourceMediaType": "text/calendar", "targetMediaType": "text/plain"},
{"sourceMediaType": "text/calendar", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/x-javascript", "targetMediaType": "text/plain"},
{"sourceMediaType": "application/x-javascript", "targetMediaType": "text/plain"}, {"sourceMediaType": "application/dita+xml", "targetMediaType": "text/plain"}
{"sourceMediaType": "application/dita+xml", "targetMediaType": "text/plain"}
], ],
"transformOptions": [ "transformOptions": [
"stringOptions" "stringOptions"
@ -50,9 +49,9 @@
{ {
"transformerName": "appleIWorks", "transformerName": "appleIWorks",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "image/jpeg"}, {"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "image/jpeg"},
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "image/jpeg"}, {"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "image/jpeg"},
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "image/jpeg"} {"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "image/jpeg"}
], ],
"transformOptions": [ "transformOptions": [
] ]
@ -60,10 +59,10 @@
{ {
"transformerName": "textToPdf", "transformerName": "textToPdf",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "text/plain", "targetMediaType": "application/pdf"}, {"sourceMediaType": "text/plain", "priority": 55, "targetMediaType": "application/pdf"},
{"sourceMediaType": "text/csv", "targetMediaType": "application/pdf"}, {"sourceMediaType": "text/csv", "targetMediaType": "application/pdf"},
{"sourceMediaType": "application/dita+xml", "targetMediaType": "application/pdf"}, {"sourceMediaType": "application/dita+xml", "targetMediaType": "application/pdf"},
{"sourceMediaType": "text/xml", "targetMediaType": "application/pdf"} {"sourceMediaType": "text/xml", "targetMediaType": "application/pdf"}
], ],
"transformOptions": [ "transformOptions": [
"textToPdfOptions" "textToPdfOptions"
@ -72,7 +71,7 @@
{ {
"transformerName": "rfc822", "transformerName": "rfc822",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "message/rfc822", "targetMediaType": "text/plain"} {"sourceMediaType": "message/rfc822", "targetMediaType": "text/plain"}
], ],
"transformOptions": [ "transformOptions": [
] ]

View File

@ -33,8 +33,8 @@ import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_KEYNOT
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_NUMBERS; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_NUMBERS;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_WORDPROCESSING; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_WORDPROCESSING;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_PDF; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_PDF;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_RFC822; import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_RFC822;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
@ -42,7 +42,6 @@ import static org.springframework.http.HttpStatus.OK;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.io.IOException;
import java.io.StringWriter; import java.io.StringWriter;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
@ -90,7 +89,7 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
@Override @Override
protected void mockTransformCommand(String sourceExtension, String targetExtension, protected void mockTransformCommand(String sourceExtension, String targetExtension,
String sourceMimetype, boolean readTargetFileBytes) throws IOException String sourceMimetype, boolean readTargetFileBytes)
{ {
} }
@ -109,11 +108,18 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile,
String... params) String... params)
{ {
return super.mockMvcRequest(url, sourceFile, params) final MockHttpServletRequestBuilder builder = super
.param("targetEncoding", targetEncoding) .mockMvcRequest(url, sourceFile, params)
.param("sourceEncoding", sourceEncoding) .param("sourceEncoding", sourceEncoding)
.param("targetMimetype", targetMimetype) .param("targetMimetype", targetMimetype)
.param("sourceMimetype", sourceMimetype); .param("sourceMimetype", sourceMimetype);
// Only the 'string' transformer should have the targetEncoding.
if (!"message/rfc822".equals(sourceMimetype) && !"text/html".equals(sourceMimetype))
{
builder.param("targetEncoding", targetEncoding);
}
return builder;
} }
@Test @Test
@ -132,14 +138,14 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
{ {
String expected = "Gym class featuring a brown fox and lazy dog"; String expected = "Gym class featuring a brown fox and lazy dog";
MvcResult result = sendRequest("eml", MvcResult result = sendRequest("eml",
null, null,
MIMETYPE_RFC822, MIMETYPE_RFC822,
"txt", "txt",
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
null, null,
readTestFile("eml")); readTestFile("eml"));
assertTrue("Content from eml transform didn't contain expected value. ", assertTrue("Content from eml transform didn't contain expected value. ",
result.getResponse().getContentAsString().contains(expected)); result.getResponse().getContentAsString().contains(expected));
} }
/** /**
@ -150,15 +156,16 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
{ {
String expected = "El r\u00E1pido zorro marr\u00F3n salta sobre el perro perezoso"; String expected = "El r\u00E1pido zorro marr\u00F3n salta sobre el perro perezoso";
MvcResult result = sendRequest("eml", MvcResult result = sendRequest("eml",
null, null,
MIMETYPE_RFC822, MIMETYPE_RFC822,
"txt", "txt",
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
null, null,
readTestFile("spanish.eml")); readTestFile("spanish.eml"));
String contentResult = new String(result.getResponse().getContentAsByteArray(), "UTF-8"); String contentResult = new String(result.getResponse().getContentAsByteArray(), UTF_8);
assertTrue("Content from eml transform didn't contain expected value. ", contentResult.contains(expected)); assertTrue("Content from eml transform didn't contain expected value. ",
contentResult.contains(expected));
} }
/** /**
@ -167,17 +174,17 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
@Test @Test
public void testRFC822WithAttachmentToText() throws Exception public void testRFC822WithAttachmentToText() throws Exception
{ {
String expected = "Mail with attachment content"; String expected = "Mail with attachment content";
String notExpected = "File attachment content"; String notExpected = "File attachment content";
MvcResult result = sendRequest("eml", MvcResult result = sendRequest("eml",
null, null,
MIMETYPE_RFC822, MIMETYPE_RFC822,
"txt", "txt",
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
null, null,
readTestFile("attachment.eml")); readTestFile("attachment.eml"));
assertTrue("Content from eml transform didn't contain expected value. ", assertTrue("Content from eml transform didn't contain expected value. ",
result.getResponse().getContentAsString().contains(expected)); result.getResponse().getContentAsString().contains(expected));
assertFalse(result.getResponse().getContentAsString().contains(notExpected)); assertFalse(result.getResponse().getContentAsString().contains(notExpected));
} }
@ -187,16 +194,16 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
@Test @Test
public void testRFC822AlternativeToText() throws Exception public void testRFC822AlternativeToText() throws Exception
{ {
String expected = "alternative plain text"; String expected = "alternative plain text";
MvcResult result = sendRequest("eml", MvcResult result = sendRequest("eml",
null, null,
MIMETYPE_RFC822, MIMETYPE_RFC822,
"txt", "txt",
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
null, null,
readTestFile("alternative.eml")); readTestFile("alternative.eml"));
assertTrue("Content from eml transform didn't contain expected value. ", assertTrue("Content from eml transform didn't contain expected value. ",
result.getResponse().getContentAsString().contains(expected)); result.getResponse().getContentAsString().contains(expected));
} }
/** /**
@ -207,14 +214,14 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
{ {
String expected = "nested alternative plain text"; String expected = "nested alternative plain text";
MvcResult result = sendRequest("eml", MvcResult result = sendRequest("eml",
null, null,
MIMETYPE_RFC822, MIMETYPE_RFC822,
"txt", "txt",
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
null, null,
readTestFile("nested.alternative.eml")); readTestFile("nested.alternative.eml"));
assertTrue("Content from eml transform didn't contain expected value. ", assertTrue("Content from eml transform didn't contain expected value. ",
result.getResponse().getContentAsString().contains(expected)); result.getResponse().getContentAsString().contains(expected));
} }
/** /**
@ -225,12 +232,12 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
{ {
String expected = "&nbsp;"; String expected = "&nbsp;";
MvcResult result = sendRequest("eml", MvcResult result = sendRequest("eml",
null, null,
MIMETYPE_RFC822, MIMETYPE_RFC822,
"txt", "txt",
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
null, null,
readTestFile("htmlChars.eml")); readTestFile("htmlChars.eml"));
assertFalse(result.getResponse().getContentAsString().contains(expected)); assertFalse(result.getResponse().getContentAsString().contains(expected));
} }
@ -254,7 +261,7 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
MIMETYPE_HTML, MIMETYPE_HTML,
"txt", "txt",
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
"UTF-8", null,
expected.getBytes()); expected.getBytes());
String contentResult = new String(result.getResponse().getContentAsByteArray(), String contentResult = new String(result.getResponse().getContentAsByteArray(),
@ -325,7 +332,7 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
MIMETYPE_TEXT_PLAIN, MIMETYPE_TEXT_PLAIN,
"pdf", "pdf",
MIMETYPE_PDF, MIMETYPE_PDF,
"UTF-8", null,
expected.getBytes()); expected.getBytes());
// Read back in the PDF and check it // Read back in the PDF and check it
@ -345,68 +352,74 @@ public class MiscControllerTest extends AbstractTransformerControllerTest
public void testAppleIWorksPages() throws Exception public void testAppleIWorksPages() throws Exception
{ {
MvcResult result = sendRequest("numbers", null, MIMETYPE_IWORK_NUMBERS, MvcResult result = sendRequest("numbers", null, MIMETYPE_IWORK_NUMBERS,
"jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("pages")); "jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("pages"));
assertTrue("Expected image content but content is empty.",result.getResponse().getContentLengthLong() > 0L); assertTrue("Expected image content but content is empty.",
result.getResponse().getContentLengthLong() > 0L);
} }
@Test @Test
public void testAppleIWorksNumbers() throws Exception public void testAppleIWorksNumbers() throws Exception
{ {
MvcResult result = sendRequest("numbers", null, MIMETYPE_IWORK_NUMBERS, MvcResult result = sendRequest("numbers", null, MIMETYPE_IWORK_NUMBERS,
"jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("numbers")); "jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("numbers"));
assertTrue("Expected image content but content is empty.",result.getResponse().getContentLengthLong() > 0L); assertTrue("Expected image content but content is empty.",
result.getResponse().getContentLengthLong() > 0L);
} }
@Test @Test
public void testAppleIWorksKey() throws Exception public void testAppleIWorksKey() throws Exception
{ {
MvcResult result = sendRequest("key", null, MIMETYPE_IWORK_KEYNOTE, MvcResult result = sendRequest("key", null, MIMETYPE_IWORK_KEYNOTE,
"jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("key")); "jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("key"));
assertTrue("Expected image content but content is empty.",result.getResponse().getContentLengthLong() > 0L); assertTrue("Expected image content but content is empty.",
result.getResponse().getContentLengthLong() > 0L);
} }
// @Test // @Test
// TODO Doesn't work with java 11, enable when fixed // TODO Doesn't work with java 11, enable when fixed
public void testOOXML() throws Exception public void testOOXML() throws Exception
{ {
MvcResult result = sendRequest("docx",null, MIMETYPE_OPENXML_WORDPROCESSING, MvcResult result = sendRequest("docx", null, MIMETYPE_OPENXML_WORDPROCESSING,
"jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("docx")); "jpeg", MIMETYPE_IMAGE_JPEG, null, readTestFile("docx"));
assertTrue("Expected image content but content is empty.",result.getResponse().getContentLengthLong() > 0L); assertTrue("Expected image content but content is empty.",
result.getResponse().getContentLengthLong() > 0L);
} }
private MvcResult sendRequest(String sourceExtension, private MvcResult sendRequest(String sourceExtension,
String sourceEncoding, String sourceEncoding,
String sourceMimetype, String sourceMimetype,
String targetExtension, String targetExtension,
String targetMimetype, String targetMimetype,
String targetEncoding, String targetEncoding,
byte[] content) throws Exception byte[] content) throws Exception
{ {
MockMultipartFile sourceFile = new MockMultipartFile("file", "test_file." + sourceExtension, sourceMimetype, content); final MockMultipartFile sourceFile = new MockMultipartFile("file",
"test_file." + sourceExtension, sourceMimetype, content);
MockHttpServletRequestBuilder requestBuilder = super.mockMvcRequest("/transform", sourceFile) final MockHttpServletRequestBuilder requestBuilder = super
.param("targetExtension", targetExtension) .mockMvcRequest("/transform", sourceFile)
.param("targetMimetype", targetMimetype) .param("targetExtension", targetExtension)
.param("sourceMimetype", sourceMimetype); .param("targetMimetype", targetMimetype)
.param("sourceMimetype", sourceMimetype);
if (sourceEncoding!=null) if (sourceEncoding != null)
{ {
requestBuilder.param("sourceEncoding", sourceEncoding); requestBuilder.param("sourceEncoding", sourceEncoding);
} }
if (targetEncoding!=null) if (targetEncoding != null)
{ {
requestBuilder.param("targetEncoding", targetEncoding); requestBuilder.param("targetEncoding", targetEncoding);
} }
MvcResult result = mockMvc.perform(requestBuilder) return mockMvc.perform(requestBuilder)
.andExpect(status().is(OK.value())) .andExpect(status().is(OK.value()))
.andExpect(header().string("Content-Disposition", "attachment; filename*= " .andExpect(header().string("Content-Disposition",
+(targetEncoding==null ? "UTF-8" : targetEncoding)+"''test_file." + targetExtension)). "attachment; filename*= " +
andReturn(); (targetEncoding == null ? "UTF-8" : targetEncoding) +
return result; "''test_file." + targetExtension))
.andReturn();
} }
private String clean(String text) private String clean(String text)
{ {
text = text.replaceAll("\\s+\\r", ""); text = text.replaceAll("\\s+\\r", "");

View File

@ -139,7 +139,6 @@ public class MiscTransformsIT
SourceTarget.of("text/mediawiki", "text/plain"), SourceTarget.of("text/mediawiki", "text/plain"),
SourceTarget.of("text/css", "text/plain"), SourceTarget.of("text/css", "text/plain"),
SourceTarget.of("text/csv", "text/plain"), SourceTarget.of("text/csv", "text/plain"),
SourceTarget.of("text/javascript", "text/plain"),
SourceTarget.of("text/xml", "text/plain"), SourceTarget.of("text/xml", "text/plain"),
SourceTarget.of("text/html", "text/plain"), SourceTarget.of("text/html", "text/plain"),
SourceTarget.of("text/richtext", "text/plain"), SourceTarget.of("text/richtext", "text/plain"),

View File

@ -41,13 +41,14 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.util.StringUtils.getFilenameExtension; import static org.springframework.util.StringUtils.getFilenameExtension;
import java.io.File; import java.io.File;
import java.io.IOException; import java.util.HashMap;
import java.io.InputStream; import java.util.Map;
import org.alfresco.transform.client.model.TransformReply; import org.alfresco.transform.client.model.TransformReply;
import org.alfresco.transform.client.model.TransformRequest; import org.alfresco.transform.client.model.TransformRequest;
import org.alfresco.transform.client.model.TransformRequestValidator; import org.alfresco.transform.client.model.TransformRequestValidator;
import org.alfresco.transform.client.model.config.TransformConfig; import org.alfresco.transform.client.model.config.TransformConfig;
import org.alfresco.transform.client.registry.TransformServiceRegistry;
import org.alfresco.transform.exceptions.TransformException; import org.alfresco.transform.exceptions.TransformException;
import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient;
import org.alfresco.transformer.logging.LogEntry; import org.alfresco.transformer.logging.LogEntry;
@ -55,7 +56,6 @@ import org.alfresco.transformer.model.FileRefResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@ -70,8 +70,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpClientErrorException;
import com.fasterxml.jackson.databind.ObjectMapper;
/** /**
* <p>Abstract Controller, provides structure and helper methods to sub-class transformer controllers.</p> * <p>Abstract Controller, provides structure and helper methods to sub-class transformer controllers.</p>
* *
@ -105,8 +103,6 @@ public abstract class AbstractTransformerController implements TransformControll
private static final Logger logger = LoggerFactory.getLogger( private static final Logger logger = LoggerFactory.getLogger(
AbstractTransformerController.class); AbstractTransformerController.class);
private static String ENGINE_CONFIG = "engine_config.json";
@Autowired @Autowired
private AlfrescoSharedFileStoreClient alfrescoSharedFileStoreClient; private AlfrescoSharedFileStoreClient alfrescoSharedFileStoreClient;
@ -114,26 +110,15 @@ public abstract class AbstractTransformerController implements TransformControll
private TransformRequestValidator transformRequestValidator; private TransformRequestValidator transformRequestValidator;
@Autowired @Autowired
private ObjectMapper objectMapper; private TransformServiceRegistry transformRegistry;
@GetMapping(value = "/transform/config") @GetMapping(value = "/transform/config")
public ResponseEntity<TransformConfig> info() public ResponseEntity<TransformConfig> info()
{ {
logger.info("GET Transform Config."); logger.info("GET Transform Config.");
try final TransformConfig transformConfig =
{ ((TransformRegistryImpl) transformRegistry).getTransformConfig();
ClassPathResource classPathResource = new ClassPathResource(ENGINE_CONFIG); return new ResponseEntity<>(transformConfig, OK);
InputStream engineConfigFile = classPathResource.getInputStream();
TransformConfig transformConfig = objectMapper.readValue(engineConfigFile,
TransformConfig.class);
return new ResponseEntity<>(transformConfig, OK);
}
catch (IOException e)
{
throw new TransformException(INTERNAL_SERVER_ERROR.value(),
"Could not read Transform Config file.", e);
}
} }
/** /**
@ -352,4 +337,39 @@ public abstract class AbstractTransformerController implements TransformControll
return sb.toString(); return sb.toString();
} }
protected String getTransformerName(final File sourceFile, final String sourceMimetype,
final String targetMimetype, final Map<String, String> transformOptions)
{
final long sourceSizeInBytes = sourceFile.length();
final String transformerName = transformRegistry.findTransformerName(sourceMimetype,
sourceSizeInBytes, targetMimetype, transformOptions, null);
if (transformerName == null)
{
throw new TransformException(BAD_REQUEST.value(),
"No transforms were able to handle the request");
}
return transformerName;
}
protected Map<String, String> createTransformOptions(Object... namesAndValues)
{
if (namesAndValues.length % 2 != 0)
{
logger.error(
"Incorrect number of parameters. Should have an even number as they are names and values.");
}
Map<String, String> transformOptions = new HashMap<>();
for (int i = 0; i < namesAndValues.length; i += 2)
{
String name = namesAndValues[i].toString();
Object value = namesAndValues[i + 1];
if (value != null)
{
transformOptions.put(name, value.toString());
}
}
return transformOptions;
}
} }

View File

@ -0,0 +1,97 @@
/*
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.transformer;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.annotation.PostConstruct;
import org.alfresco.transform.client.model.config.TransformConfig;
import org.alfresco.transform.client.registry.AbstractTransformRegistry;
import org.alfresco.transform.client.registry.TransformCache;
import org.alfresco.transform.exceptions.TransformException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* Used by clients to work out if a transformation is supported based on the engine_config.json.
*/
public class TransformRegistryImpl extends AbstractTransformRegistry
{
private static final Logger log = LoggerFactory.getLogger(TransformRegistryImpl.class);
private static final String ENGINE_CONFIG_JSON = "classpath:engine_config.json";
@Value(ENGINE_CONFIG_JSON)
private Resource engineConfig;
// Holds the structures used by AbstractTransformRegistry to look up what is supported.
// Unlike other sub classes this class does not extend Data or replace it at run time.
private TransformCache data = new TransformCache();
private ObjectMapper jsonObjectMapper = new ObjectMapper();
TransformConfig getTransformConfig()
{
try (Reader reader = new InputStreamReader(engineConfig.getInputStream(), UTF_8))
{
return jsonObjectMapper.readValue(reader, TransformConfig.class);
}
catch (IOException e)
{
throw new TransformException(INTERNAL_SERVER_ERROR.value(),
"Could not read " + ENGINE_CONFIG_JSON, e);
}
}
@PostConstruct
public void afterPropertiesSet()
{
TransformConfig transformConfig = getTransformConfig();
registerAll(transformConfig, null, ENGINE_CONFIG_JSON);
}
@Override
public TransformCache getData()
{
return data;
}
@Override
protected void logError(String msg)
{
log.error(msg);
}
}

View File

@ -27,7 +27,9 @@
package org.alfresco.transformer.config; package org.alfresco.transformer.config;
import org.alfresco.transform.client.model.TransformRequestValidator; import org.alfresco.transform.client.model.TransformRequestValidator;
import org.alfresco.transform.client.registry.TransformServiceRegistry;
import org.alfresco.transformer.TransformInterceptor; import org.alfresco.transformer.TransformInterceptor;
import org.alfresco.transformer.TransformRegistryImpl;
import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -42,8 +44,9 @@ public class WebApplicationConfig implements WebMvcConfigurer
@Override @Override
public void addInterceptors(InterceptorRegistry registry) public void addInterceptors(InterceptorRegistry registry)
{ {
registry.addInterceptor(transformInterceptor()).addPathPatterns("/transform", "/live", registry
"/ready"); .addInterceptor(transformInterceptor())
.addPathPatterns("/transform", "/live", "/ready");
} }
@Bean @Bean
@ -69,4 +72,10 @@ public class WebApplicationConfig implements WebMvcConfigurer
{ {
return new TransformRequestValidator(); return new TransformRequestValidator();
} }
@Bean
public TransformServiceRegistry transformRegistry()
{
return new TransformRegistryImpl();
}
} }

View File

@ -37,18 +37,18 @@ public class Util
* @param param String to be converted * @param param String to be converted
* @return Null if param is null or converted value as {@link Integer} * @return Null if param is null or converted value as {@link Integer}
*/ */
public static Integer stringToInteger(String param) public static Integer stringToInteger(final String param)
{ {
return param == null ? null : Integer.parseInt(param); return param == null ? null : Integer.parseInt(param);
} }
/** /**
* Safely converts a {@link String} to an {@link Integer} * Safely converts a {@link String} to a {@link Boolean}
* *
* @param param String to be converted * @param param String to be converted
* @return Null if param is null or converted value as {@link Boolean} * @return Null if param is null or converted value as {@link Boolean}
*/ */
public static Boolean stringToBoolean(String param) public static Boolean stringToBoolean(final String param)
{ {
return param == null ? null : Boolean.parseBoolean(param); return param == null ? null : Boolean.parseBoolean(param);
} }

View File

@ -95,7 +95,7 @@ public abstract class AbstractHttpRequestTest
} }
@Test @Test
public void noTargetExtensionError() throws Exception public void noTargetExtensionError()
{ {
assertMissingParameter("targetExtension"); assertMissingParameter("targetExtension");
} }
@ -106,7 +106,7 @@ public abstract class AbstractHttpRequestTest
getTransformerName() + " - Request parameter '" + name + "' is missing"); getTransformerName() + " - Request parameter '" + name + "' is missing");
} }
private void assertTransformError(boolean addFile, String errorMessage) protected void assertTransformError(boolean addFile, String errorMessage)
{ {
LinkedMultiValueMap<String, Object> parameters = new LinkedMultiValueMap<>(); LinkedMultiValueMap<String, Object> parameters = new LinkedMultiValueMap<>();
if (addFile) if (addFile)
@ -118,7 +118,14 @@ public abstract class AbstractHttpRequestTest
headers.setContentType(MULTIPART_FORM_DATA); headers.setContentType(MULTIPART_FORM_DATA);
HttpEntity<LinkedMultiValueMap<String, Object>> entity = new HttpEntity<>(parameters, HttpEntity<LinkedMultiValueMap<String, Object>> entity = new HttpEntity<>(parameters,
headers); headers);
ResponseEntity<String> response = restTemplate.exchange("/transform", POST, entity,
sendTranformationRequest(entity, errorMessage);
}
protected void sendTranformationRequest(
final HttpEntity<LinkedMultiValueMap<String, Object>> entity, final String errorMessage)
{
final ResponseEntity<String> response = restTemplate.exchange("/transform", POST, entity,
String.class, ""); String.class, "");
assertEquals(errorMessage, getErrorMessage(response.getBody())); assertEquals(errorMessage, getErrorMessage(response.getBody()));
} }

View File

@ -60,11 +60,13 @@ import org.alfresco.transform.client.model.config.TransformOption;
import org.alfresco.transform.client.model.config.TransformOptionGroup; import org.alfresco.transform.client.model.config.TransformOptionGroup;
import org.alfresco.transform.client.model.config.TransformOptionValue; import org.alfresco.transform.client.model.config.TransformOptionValue;
import org.alfresco.transform.client.model.config.Transformer; import org.alfresco.transform.client.model.config.Transformer;
import org.alfresco.transform.client.registry.TransformServiceRegistry;
import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient;
import org.alfresco.transformer.probes.ProbeTestTransform; import org.alfresco.transformer.probes.ProbeTestTransform;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.util.ReflectionTestUtils;
@ -91,6 +93,9 @@ public abstract class AbstractTransformerControllerTest
@MockBean @MockBean
protected AlfrescoSharedFileStoreClient alfrescoSharedFileStoreClient; protected AlfrescoSharedFileStoreClient alfrescoSharedFileStoreClient;
@SpyBean
protected TransformServiceRegistry transformRegistry;
protected String sourceExtension; protected String sourceExtension;
protected String targetExtension; protected String targetExtension;
protected String sourceMimetype; protected String sourceMimetype;
@ -100,6 +105,13 @@ public abstract class AbstractTransformerControllerTest
protected String expectedSourceSuffix; protected String expectedSourceSuffix;
protected Long expectedTimeout = 0L; protected Long expectedTimeout = 0L;
protected byte[] expectedSourceFileBytes; protected byte[] expectedSourceFileBytes;
/**
* The expected result. Taken resting target quick file's bytes.
*
* Note: These checks generally don't work on Windows (Mac and Linux are okay). Possibly to do with byte order
* loading.
*/
protected byte[] expectedTargetFileBytes; protected byte[] expectedTargetFileBytes;
// Called by sub class // Called by sub class
@ -228,7 +240,7 @@ public abstract class AbstractTransformerControllerTest
} }
@Test @Test
// Is okay, as the target filename is built up from the whole source filename and the targetExtenstion // Is okay, as the target filename is built up from the whole source filename and the targetExtension
public void noExtensionSourceFilenameTest() throws Exception public void noExtensionSourceFilenameTest() throws Exception
{ {
sourceFile = new MockMultipartFile("file", "../quick", sourceMimetype, sourceFile = new MockMultipartFile("file", "../quick", sourceMimetype,
@ -334,8 +346,8 @@ public abstract class AbstractTransformerControllerTest
.readValue(new ClassPathResource("engine_config.json").getFile(), .readValue(new ClassPathResource("engine_config.json").getFile(),
TransformConfig.class); TransformConfig.class);
ReflectionTestUtils ReflectionTestUtils.setField(transformRegistry, "engineConfig",
.setField(AbstractTransformerController.class, "ENGINE_CONFIG", "engine_config.json"); new ClassPathResource("engine_config.json"));
String response = mockMvc String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config")) .perform(MockMvcRequestBuilders.get("/transform/config"))
@ -353,8 +365,8 @@ public abstract class AbstractTransformerControllerTest
{ {
TransformConfig expectedResult = buildCompleteTransformConfig(); TransformConfig expectedResult = buildCompleteTransformConfig();
ReflectionTestUtils.setField(AbstractTransformerController.class, "ENGINE_CONFIG", ReflectionTestUtils.setField(transformRegistry, "engineConfig",
"engine_config_with_duplicates.json"); new ClassPathResource("engine_config_with_duplicates.json"));
String response = mockMvc String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config")) .perform(MockMvcRequestBuilders.get("/transform/config"))
@ -380,8 +392,8 @@ public abstract class AbstractTransformerControllerTest
TransformConfig expectedResult = new TransformConfig(); TransformConfig expectedResult = new TransformConfig();
expectedResult.setTransformers(ImmutableList.of(transformer)); expectedResult.setTransformers(ImmutableList.of(transformer));
ReflectionTestUtils.setField(AbstractTransformerController.class, "ENGINE_CONFIG", ReflectionTestUtils.setField(transformRegistry, "engineConfig",
"engine_config_incomplete.json"); new ClassPathResource("engine_config_incomplete.json"));
String response = mockMvc String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config")) .perform(MockMvcRequestBuilders.get("/transform/config"))
@ -403,8 +415,8 @@ public abstract class AbstractTransformerControllerTest
TransformConfig expectedResult = new TransformConfig(); TransformConfig expectedResult = new TransformConfig();
expectedResult.setTransformers(ImmutableList.of(transformer)); expectedResult.setTransformers(ImmutableList.of(transformer));
ReflectionTestUtils.setField(AbstractTransformerController.class, "ENGINE_CONFIG", ReflectionTestUtils.setField(transformRegistry, "engineConfig",
"engine_config_no_transform_options.json"); new ClassPathResource("engine_config_no_transform_options.json"));
String response = mockMvc String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config")) .perform(MockMvcRequestBuilders.get("/transform/config"))

10
pom.xml
View File

@ -23,7 +23,7 @@
<dependency.pdfbox.version>2.0.16</dependency.pdfbox.version> <dependency.pdfbox.version>2.0.16</dependency.pdfbox.version>
<dependency.alfresco-jodconverter-core.version>3.0.1.1</dependency.alfresco-jodconverter-core.version> <dependency.alfresco-jodconverter-core.version>3.0.1.1</dependency.alfresco-jodconverter-core.version>
<env.project_version>${project.version}</env.project_version> <env.project_version>${project.version}</env.project_version>
<dependency.alfresco-transform-model.version>1.0.2.6</dependency.alfresco-transform-model.version> <dependency.alfresco-transform-model.version>1.0.2.8-SNAPSHOT</dependency.alfresco-transform-model.version>
<dependency.activemq.version>5.15.9</dependency.activemq.version> <dependency.activemq.version>5.15.9</dependency.activemq.version>
<dependency.jackson.version>2.9.9</dependency.jackson.version> <dependency.jackson.version>2.9.9</dependency.jackson.version>
<dependency.jackson-databind.version>2.9.9.3</dependency.jackson-databind.version> <dependency.jackson-databind.version>2.9.9.3</dependency.jackson-databind.version>
@ -152,7 +152,7 @@
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId> <artifactId>commons-compress</artifactId>
<version>1.18</version> <version>1.19</version>
</dependency> </dependency>
<!-- Jsoup --> <!-- Jsoup -->
<dependency> <dependency>
@ -160,6 +160,12 @@
<artifactId>jsoup</artifactId> <artifactId>jsoup</artifactId>
<version>1.12.1</version> <version>1.12.1</version>
</dependency> </dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.13</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>