mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
ALF-14306 Add priorities to transformers
- Refactor to use ".mimetypes." and ".extensions." in all properties - TransformerDebug to include priorities git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@46889 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -15,291 +15,291 @@ content.transformer.default.maxPages=-1
|
||||
|
||||
# Transformer specific settings
|
||||
# =============================
|
||||
content.transformer.ImageMagick.mimetypes.png.png.priority=5
|
||||
content.transformer.ImageMagick.mimetypes.pdf.png.priority=5
|
||||
content.transformer.ImageMagick.mimetypes.ai.png.priority=5
|
||||
content.transformer.ImageMagick.extensions.png.png.priority=5
|
||||
content.transformer.ImageMagick.extensions.pdf.png.priority=5
|
||||
content.transformer.ImageMagick.extensions.ai.png.priority=5
|
||||
|
||||
content.transformer.iWorksQuicklooks.mimetypes.key.jpg.priority=5
|
||||
content.transformer.iWorksQuicklooks.mimetypes.pages.jpg.priority=5
|
||||
content.transformer.iWorksQuicklooks.mimetypes.numbers.jpg.priority=5
|
||||
content.transformer.iWorksQuicklooks.mimetypes.key.pdf.priority=5
|
||||
content.transformer.iWorksQuicklooks.mimetypes.pages.pdf.priority=5
|
||||
content.transformer.iWorksQuicklooks.mimetypes.numbers.pdf.priority=5
|
||||
content.transformer.iWorksQuicklooks.extensions.key.jpg.priority=5
|
||||
content.transformer.iWorksQuicklooks.extensions.pages.jpg.priority=5
|
||||
content.transformer.iWorksQuicklooks.extensions.numbers.jpg.priority=5
|
||||
content.transformer.iWorksQuicklooks.extensions.key.pdf.priority=5
|
||||
content.transformer.iWorksQuicklooks.extensions.pages.pdf.priority=5
|
||||
content.transformer.iWorksQuicklooks.extensions.numbers.pdf.priority=5
|
||||
|
||||
content.transformer.PdfBox.mimetypes.pdf.txt.priority=5
|
||||
content.transformer.PdfBox.extensions.pdf.txt.priority=5
|
||||
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.png.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.eps.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.jp2.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.psd.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ppj.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.cgm.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.gif.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ief.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.bmp.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.jpg.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.pbm.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.pgm.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.pnm.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ppm.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ras.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.tiff.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.xbm.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.xpm.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.xwd.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.bin.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.dwt.supported=true
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.jpg.priority=5
|
||||
content.transformer.complex.PDF.Image.mimetypes.pdf.gif.priority=5
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.png.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.eps.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.jp2.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.psd.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.ppj.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.cgm.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.gif.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.ief.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.bmp.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.jpg.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.pbm.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.pgm.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.pnm.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.ppm.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.ras.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.tiff.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.xbm.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.xpm.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.xwd.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.bin.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.dwt.supported=true
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.jpg.priority=5
|
||||
content.transformer.complex.PDF.Image.extensions.pdf.gif.priority=5
|
||||
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.png.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.eps.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.jp2.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.psd.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ppj.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.cgm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.gif.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ief.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.bmp.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.jpg.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.pbm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.pgm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.pnm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ppm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ras.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.tiff.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.xbm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.xpm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.xwd.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.bin.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.dwt.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.jpg.priority=5
|
||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.gif.priority=5
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.png.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.eps.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.jp2.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.psd.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ppj.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.cgm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.gif.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ief.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.bmp.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.jpg.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.pbm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.pgm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.pnm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ppm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ras.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.tiff.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.xbm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.xpm.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.xwd.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.bin.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.dwt.supported=true
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.jpg.priority=5
|
||||
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.gif.priority=5
|
||||
|
||||
content.transformer.complex.iWorks.Image.mimetypes.key.png.priority=5
|
||||
content.transformer.complex.iWorks.Image.mimetypes.numbers.png.priority=5
|
||||
content.transformer.complex.iWorks.Image.mimetypes.pages.png.priority=5
|
||||
content.transformer.complex.iWorks.Image.extensions.key.png.priority=5
|
||||
content.transformer.complex.iWorks.Image.extensions.numbers.png.priority=5
|
||||
content.transformer.complex.iWorks.Image.extensions.pages.png.priority=5
|
||||
|
||||
content.transformer.OpenOffice.mimetypes.*.xlsm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.pptm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.sldm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.xltx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.docx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.potx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.xlsx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.pptx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.xlam.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.docm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.xltm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.dotx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.xlsb.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.sldx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.ppsm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.txt.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.potm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.ppam.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.dotm.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.*.ppsx.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.html.pdf.supported=false
|
||||
content.transformer.OpenOffice.mimetypes.xlsm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.mimetypes.pptm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.xls.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.OpenOffice.mimetypes.sldm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.xltx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.mimetypes.potx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.docx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.mimetypes.xlsx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.mimetypes.pptx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.xlam.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.mimetypes.ppt.pdf.maxSourceSizeKBytes=6144
|
||||
content.transformer.OpenOffice.mimetypes.docm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.mimetypes.xltm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.mimetypes.dotx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.mimetypes.xlsb.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.mimetypes.sldx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.ppsm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.potm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.txt.pdf.maxSourceSizeKBytes=5120
|
||||
content.transformer.OpenOffice.mimetypes.ppam.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.dotm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.mimetypes.doc.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.OpenOffice.mimetypes.vsd.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.mimetypes.ppsx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.*.xlsm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.pptm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.sldm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.xltx.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.docx.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.potx.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.xlsx.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.pptx.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.xlam.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.docm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.xltm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.dotx.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.xlsb.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.sldx.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.ppsm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.txt.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.potm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.ppam.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.dotm.supported=false
|
||||
content.transformer.OpenOffice.extensions.*.ppsx.supported=false
|
||||
content.transformer.OpenOffice.extensions.html.pdf.supported=false
|
||||
content.transformer.OpenOffice.extensions.xlsm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.extensions.pptm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.xls.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.OpenOffice.extensions.sldm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.xltx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.extensions.potx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.docx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.extensions.xlsx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.extensions.pptx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.xlam.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.extensions.ppt.pdf.maxSourceSizeKBytes=6144
|
||||
content.transformer.OpenOffice.extensions.docm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.extensions.xltm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.extensions.dotx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.extensions.xlsb.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.OpenOffice.extensions.sldx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.ppsm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.potm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.txt.pdf.maxSourceSizeKBytes=5120
|
||||
content.transformer.OpenOffice.extensions.ppam.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.dotm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.OpenOffice.extensions.doc.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.OpenOffice.extensions.vsd.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.OpenOffice.extensions.ppsx.pdf.maxSourceSizeKBytes=4096
|
||||
|
||||
content.transformer.OpenOffice.Html2Pdf.mimetypes.html.pdf.supported=true
|
||||
content.transformer.OpenOffice.Html2Pdf.mimetypes.html.pdf.priority=5
|
||||
content.transformer.OpenOffice.Html2Pdf.extensions.html.pdf.supported=true
|
||||
content.transformer.OpenOffice.Html2Pdf.extensions.html.pdf.priority=5
|
||||
|
||||
content.transformer.OpenOffice.2Pdf.mimetypes.*.pdf.supported=true
|
||||
content.transformer.OpenOffice.2Pdf.extensions.*.pdf.supported=true
|
||||
|
||||
content.transformer.PdfBox.TextToPdf.mimetypes.csv.pdf.supported=true
|
||||
content.transformer.PdfBox.TextToPdf.mimetypes.xml.pdf.supported=true
|
||||
content.transformer.PdfBox.TextToPdf.extensions.csv.pdf.supported=true
|
||||
content.transformer.PdfBox.TextToPdf.extensions.xml.pdf.supported=true
|
||||
content.transformer.PdfBox.TextToPdf.maxSourceSizeKBytes=10240
|
||||
|
||||
content.transformer.complex.Text.Image.mimetypes.csv.*.supported=true
|
||||
content.transformer.complex.Text.Image.mimetypes.xml.*.supported=true
|
||||
content.transformer.complex.Text.Image.mimetypes.txt.*.supported=true
|
||||
content.transformer.complex.Text.Image.extensions.csv.*.supported=true
|
||||
content.transformer.complex.Text.Image.extensions.xml.*.supported=true
|
||||
content.transformer.complex.Text.Image.extensions.txt.*.supported=true
|
||||
|
||||
content.transformer.TextMining.mimetypes.doc.txt.priority=5
|
||||
content.transformer.TextMining.extensions.doc.txt.priority=5
|
||||
|
||||
content.transformer.HtmlParser.mimetypes.html.txt.priority=5
|
||||
content.transformer.HtmlParser.extensions.html.txt.priority=5
|
||||
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xlsm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.pptm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xls.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.sldm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xltx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.docx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.potx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xlsx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.pptx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xlam.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppt.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.docm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xltm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.dotx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.sldx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppsm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.txt.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppam.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.dotm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.doc.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppsx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xlsb.txt.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.potm.txt.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.xlsm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.pptm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.xls.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.sldm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.xltx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.docx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.potx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.xlsx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.pptx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.xlam.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.ppt.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.docm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.xltm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.dotx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.sldx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.ppsm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.txt.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.ppam.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.dotm.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.doc.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.ppsx.txt.supported=false
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.xlsb.txt.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.PdfBox.extensions.potm.txt.maxSourceSizeKBytes=1024
|
||||
|
||||
content.transformer.Archive.mimetypes.zip.txt.priority=5
|
||||
content.transformer.Archive.extensions.zip.txt.priority=5
|
||||
|
||||
content.transformer.Pdf2swf.maxSourceSizeKBytes=5120
|
||||
content.transformer.Pdf2swf.mimetypes.pdf.swf.supported=true
|
||||
content.transformer.Pdf2swf.mimetypes.ai.swf.supported=true
|
||||
content.transformer.Pdf2swf.extensions.pdf.swf.supported=true
|
||||
content.transformer.Pdf2swf.extensions.ai.swf.supported=true
|
||||
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xlsm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.pptm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xls.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.sldm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xltx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.docx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.potx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xlsx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.pptx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xlam.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppt.swf.maxSourceSizeKBytes=6144
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.docm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xltm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.dotx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xlsb.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.sldx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppsm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.potm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.txt.swf.maxSourceSizeKBytes=5120
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppam.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.dotm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.doc.swf.maxSourceSizeKBytes=1536
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.vsd.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppsx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xlsm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.pptm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xls.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.sldm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xltx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.docx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.potx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xlsx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.pptx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xlam.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.ppt.swf.maxSourceSizeKBytes=6144
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.docm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xltm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.dotx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xlsb.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.sldx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.ppsm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.potm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.txt.swf.maxSourceSizeKBytes=5120
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.ppam.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.dotm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.doc.swf.maxSourceSizeKBytes=1536
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.vsd.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.OpenOffice.Pdf2swf.extensions.ppsx.swf.maxSourceSizeKBytes=4096
|
||||
|
||||
content.transformer.complex.Text.Pdf2swf.mimetypes.csv.swf.supported=true
|
||||
content.transformer.complex.Text.Pdf2swf.mimetypes.xml.swf.supported=true
|
||||
content.transformer.complex.Text.Pdf2swf.extensions.csv.swf.supported=true
|
||||
content.transformer.complex.Text.Pdf2swf.extensions.xml.swf.supported=true
|
||||
content.transformer.complex.Text.Pdf2swf.maxSourceSizeKBytes=5120
|
||||
|
||||
content.transformer.complex.image.Pdf2swf.mimetypes.tiff.swf.supported=true
|
||||
content.transformer.complex.image.Pdf2swf.extensions.tiff.swf.supported=true
|
||||
|
||||
content.transformer.JodConverter.mimetypes.*.xlsm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.pptm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.sldm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.xltx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.docx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.potx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.xlsx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.pptx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.xlam.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.docm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.xltm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.dotx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.xlsb.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.sldx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.ppsm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.txt.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.potm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.ppam.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.dotm.supported=false
|
||||
content.transformer.JodConverter.mimetypes.*.ppsx.supported=false
|
||||
content.transformer.JodConverter.mimetypes.html.pdf.supported=false
|
||||
content.transformer.JodConverter.mimetypes.xlsm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.mimetypes.pptm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.xls.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.JodConverter.mimetypes.sldm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.xltx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.mimetypes.potx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.docx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.mimetypes.xlsx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.mimetypes.pptx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.xlam.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.mimetypes.ppt.pdf.maxSourceSizeKBytes=6144
|
||||
content.transformer.JodConverter.mimetypes.docm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.mimetypes.xltm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.mimetypes.dotx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.mimetypes.xlsb.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.mimetypes.sldx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.ppsm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.potm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.txt.pdf.maxSourceSizeKBytes=5120
|
||||
content.transformer.JodConverter.mimetypes.ppam.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.dotm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.mimetypes.doc.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.JodConverter.mimetypes.vsd.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.mimetypes.ppsx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.*.xlsm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.pptm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.sldm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.xltx.supported=false
|
||||
content.transformer.JodConverter.extensions.*.docx.supported=false
|
||||
content.transformer.JodConverter.extensions.*.potx.supported=false
|
||||
content.transformer.JodConverter.extensions.*.xlsx.supported=false
|
||||
content.transformer.JodConverter.extensions.*.pptx.supported=false
|
||||
content.transformer.JodConverter.extensions.*.xlam.supported=false
|
||||
content.transformer.JodConverter.extensions.*.docm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.xltm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.dotx.supported=false
|
||||
content.transformer.JodConverter.extensions.*.xlsb.supported=false
|
||||
content.transformer.JodConverter.extensions.*.sldx.supported=false
|
||||
content.transformer.JodConverter.extensions.*.ppsm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.txt.supported=false
|
||||
content.transformer.JodConverter.extensions.*.potm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.ppam.supported=false
|
||||
content.transformer.JodConverter.extensions.*.dotm.supported=false
|
||||
content.transformer.JodConverter.extensions.*.ppsx.supported=false
|
||||
content.transformer.JodConverter.extensions.html.pdf.supported=false
|
||||
content.transformer.JodConverter.extensions.xlsm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.extensions.pptm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.xls.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.JodConverter.extensions.sldm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.xltx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.extensions.potx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.docx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.extensions.xlsx.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.extensions.pptx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.xlam.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.extensions.ppt.pdf.maxSourceSizeKBytes=6144
|
||||
content.transformer.JodConverter.extensions.docm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.extensions.xltm.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.extensions.dotx.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.extensions.xlsb.pdf.maxSourceSizeKBytes=1536
|
||||
content.transformer.JodConverter.extensions.sldx.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.ppsm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.potm.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.txt.pdf.maxSourceSizeKBytes=5120
|
||||
content.transformer.JodConverter.extensions.ppam.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.dotm.pdf.maxSourceSizeKBytes=768
|
||||
content.transformer.JodConverter.extensions.doc.pdf.maxSourceSizeKBytes=10240
|
||||
content.transformer.JodConverter.extensions.vsd.pdf.maxSourceSizeKBytes=4096
|
||||
content.transformer.JodConverter.extensions.ppsx.pdf.maxSourceSizeKBytes=4096
|
||||
|
||||
content.transformer.JodConverter.Html2Pdf.mimetypes.html.pdf.supported=true
|
||||
content.transformer.JodConverter.Html2Pdf.mimetypes.html.pdf.priority=5
|
||||
content.transformer.JodConverter.Html2Pdf.extensions.html.pdf.supported=true
|
||||
content.transformer.JodConverter.Html2Pdf.extensions.html.pdf.priority=5
|
||||
|
||||
content.transformer.JodConverter.2Pdf.mimetypes.*.pdf.supported=true
|
||||
content.transformer.JodConverter.2Pdf.extensions.*.pdf.supported=true
|
||||
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xlsm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.pptm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xls.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.sldm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xltx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.docx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.potx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xlsx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.pptx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xlam.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppt.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.docm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xltm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.dotx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.sldx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppsm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.txt.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppam.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.dotm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.doc.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppsx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xlsb.txt.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.potm.txt.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.xlsm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.pptm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.xls.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.sldm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.xltx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.docx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.potx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.xlsx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.pptx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.xlam.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.ppt.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.docm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.xltm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.dotx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.sldx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.ppsm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.txt.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.ppam.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.dotm.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.doc.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.ppsx.txt.supported=false
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.xlsb.txt.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.PdfBox.extensions.potm.txt.maxSourceSizeKBytes=1024
|
||||
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xlsm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.pptm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xls.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.sldm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xltx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.docx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.potx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xlsx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.pptx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xlam.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppt.swf.maxSourceSizeKBytes=6144
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.docm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xltm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.dotx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xlsb.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.sldx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppsm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.potm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.txt.swf.maxSourceSizeKBytes=5120
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppam.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.dotm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.doc.swf.maxSourceSizeKBytes=1536
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.vsd.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppsx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.xlsm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.pptm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.xls.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.sldm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.xltx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.docx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.potx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.xlsx.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.pptx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.xlam.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.ppt.swf.maxSourceSizeKBytes=6144
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.docm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.xltm.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.dotx.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.xlsb.swf.maxSourceSizeKBytes=1024
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.sldx.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.ppsm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.potm.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.txt.swf.maxSourceSizeKBytes=5120
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.ppam.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.dotm.swf.maxSourceSizeKBytes=256
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.doc.swf.maxSourceSizeKBytes=1536
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.vsd.swf.maxSourceSizeKBytes=4096
|
||||
content.transformer.complex.JodConverter.Pdf2swf.extensions.ppsx.swf.maxSourceSizeKBytes=4096
|
@@ -805,16 +805,15 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
MimetypeMap.MIMETYPE_IMAGE_PNG.equals(targetMimetype) &&
|
||||
transformerDebug.getFileName(transformOptions, true, 0).contains("debugTransformers.txt"))
|
||||
{
|
||||
Map<String, Set<String>> explicitTransforms = debugExplicitTransforms();
|
||||
debugActiveTransformersByTransformer(explicitTransforms);
|
||||
debugActiveTransformersByMimetypes(explicitTransforms);
|
||||
debugActiveTransformersByTransformer();
|
||||
debugActiveTransformersByMimetypes();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates TransformerDebug that lists all the supported mimetype transformation for each transformer.
|
||||
*/
|
||||
private void debugActiveTransformersByTransformer(Map<String, Set<String>> explicitTransforms)
|
||||
private void debugActiveTransformersByTransformer()
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -837,20 +836,8 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
{
|
||||
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(
|
||||
sourceMimetype, targetMimetype, options);
|
||||
|
||||
// Is this an explicit transform, ignored because there are explicit transforms
|
||||
// or does not have explicit transforms.
|
||||
Boolean explicit = transformer.isExplicitTransformation(sourceMimetype,
|
||||
targetMimetype, options);
|
||||
if (!explicit)
|
||||
{
|
||||
Set<String> targetMimetypes = explicitTransforms.get(sourceMimetype);
|
||||
explicit = (targetMimetypes == null || !targetMimetypes.contains(targetMimetype))
|
||||
? null
|
||||
: Boolean.FALSE;
|
||||
}
|
||||
transformerDebug.activeTransformer(++mimetypePairCount, transformer,
|
||||
sourceMimetype, targetMimetype, maxSourceSizeKBytes, explicit, first);
|
||||
sourceMimetype, targetMimetype, maxSourceSizeKBytes, first);
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
@@ -875,7 +862,7 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
/**
|
||||
* Creates TransformerDebug that lists all available transformers for each mimetype combination.
|
||||
*/
|
||||
private void debugActiveTransformersByMimetypes(Map<String, Set<String>> explicitTransforms)
|
||||
private void debugActiveTransformersByMimetypes()
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -897,21 +884,8 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
{
|
||||
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(
|
||||
sourceMimetype, targetMimetype, options);
|
||||
|
||||
// Is this an explicit transform, ignored because there are explicit transforms
|
||||
// or does not have explicit transforms.
|
||||
Boolean explicit = transformer.isExplicitTransformation(sourceMimetype,
|
||||
targetMimetype, options);
|
||||
if (!explicit)
|
||||
{
|
||||
Set<String> targetMimetypes = explicitTransforms.get(sourceMimetype);
|
||||
explicit = (targetMimetypes == null || !targetMimetypes.contains(targetMimetype))
|
||||
? null
|
||||
: Boolean.FALSE;
|
||||
}
|
||||
transformerDebug.activeTransformer(sourceMimetype, targetMimetype,
|
||||
transformerCount, transformer, maxSourceSizeKBytes, explicit,
|
||||
transformerCount++ == 0);
|
||||
transformerCount, transformer, maxSourceSizeKBytes, transformerCount++ == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -928,43 +902,6 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the explicit mimetype transformations. Key is the source mimetype
|
||||
* and the value is a set of target mimetypes that are explicit.
|
||||
*/
|
||||
private Map<String, Set<String>> debugExplicitTransforms()
|
||||
{
|
||||
Map<String, Set<String>> explicitTransforms = new HashMap<String, Set<String>>();
|
||||
|
||||
TransformationOptions options = new TransformationOptions();
|
||||
for (String sourceMimetype : mimetypeService.getMimetypes())
|
||||
{
|
||||
for (String targetMimetype : mimetypeService.getMimetypes())
|
||||
{
|
||||
for (ContentTransformer transformer : transformerRegistry.getTransformers())
|
||||
{
|
||||
if (transformer.isTransformable(sourceMimetype, -1, targetMimetype, options))
|
||||
{
|
||||
if (transformer.isExplicitTransformation(sourceMimetype, targetMimetype,
|
||||
options))
|
||||
{
|
||||
Set<String> targetMimetypes = explicitTransforms.get(sourceMimetype);
|
||||
if (targetMimetypes == null)
|
||||
{
|
||||
targetMimetypes = new HashSet<String>();
|
||||
explicitTransforms.put(sourceMimetype, targetMimetypes);
|
||||
}
|
||||
targetMimetypes.add(targetMimetype);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return explicitTransforms;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
@@ -298,7 +298,7 @@ public abstract class AbstractContentTransformerLimits extends ContentTransforme
|
||||
{
|
||||
String targetExt = getExtensionOrAny(target.getKey());
|
||||
TransformationOptionLimits limits = target.getValue();
|
||||
String mimetypeSuffix = TransformerConfig.MIMETYPES_SEPARATOR.substring(1)+sourceExt+'.'+targetExt;
|
||||
String mimetypeSuffix = TransformerConfig.EXTENSIONS_SEPARATOR.substring(1)+sourceExt+'.'+targetExt;
|
||||
|
||||
deprecatedLimitsSetter(mimetypeSuffix, limits);
|
||||
}
|
||||
|
@@ -237,7 +237,7 @@ public class ContentTransformerHelper implements BeanNameAware
|
||||
String targetMimetype = transformation.getTargetMimetype();
|
||||
String sourceExt = getExtensionOrAny(sourceMimetype);
|
||||
String targetExt = getExtensionOrAny(targetMimetype);
|
||||
deprecatedSetter(TransformerConfig.MIMETYPES_SEPARATOR.substring(1)+sourceExt+'.'+targetExt+
|
||||
deprecatedSetter(TransformerConfig.EXTENSIONS_SEPARATOR.substring(1)+sourceExt+'.'+targetExt+
|
||||
(value == null // same as: transformation instanceof ExplictTransformationDetails
|
||||
? TransformerConfig.PRIORITY+"="+TransformerConfig.PRIORITY_EXPLICIT
|
||||
: TransformerConfig.SUPPORTED+"="+value));
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2012 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2013 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -68,6 +68,12 @@ public interface TransformerConfig
|
||||
/**
|
||||
* The separator between the transformer name and two mimetype extensions in a property name.
|
||||
*/
|
||||
static final String EXTENSIONS_SEPARATOR = ".extensions.";
|
||||
|
||||
/**
|
||||
* The separator between the transformer name and wildcarded mimetypes rather than extensions in a property name.
|
||||
* Effectively equivalent to multiple properties using the {@link #EXTENSIONS_SEPARATOR}.
|
||||
*/
|
||||
static final String MIMETYPES_SEPARATOR = ".mimetypes.";
|
||||
|
||||
/**
|
||||
@@ -104,6 +110,16 @@ public interface TransformerConfig
|
||||
*/
|
||||
static final String INITIAL_COUNT = ".count";
|
||||
|
||||
/**
|
||||
* Suffixes for limits.
|
||||
*/
|
||||
static final String MAX_SOURCE_SIZE_K_BYTES = '.'+TransformationOptionLimits.OPT_MAX_SOURCE_SIZE_K_BYTES;
|
||||
static final String TIMEOUT_MS = '.'+TransformationOptionLimits.OPT_TIMEOUT_MS;
|
||||
static final String MAX_PAGES = '.'+TransformationOptionLimits.OPT_MAX_PAGES;
|
||||
static final String READ_LIMIT_K_BYTES = '.'+TransformationOptionLimits.OPT_READ_LIMIT_K_BYTES;
|
||||
static final String READ_LIMIT_TIME_MS = '.'+TransformationOptionLimits.OPT_READ_LIMIT_TIME_MS;
|
||||
static final String PAGE_LIMIT = '.'+TransformationOptionLimits.OPT_PAGE_LIMIT;
|
||||
|
||||
/**
|
||||
* To support the historical concept of EXPLICIT transformers, all such transformers
|
||||
* are given a {@link PRIORITY_EXPLICIT} (5). By default transformers have a default of 10.
|
||||
@@ -111,16 +127,21 @@ public interface TransformerConfig
|
||||
*/
|
||||
public int PRIORITY_EXPLICIT = 5;
|
||||
|
||||
/**
|
||||
* By default transformers have a default of 10.
|
||||
*/
|
||||
public int PRIORITY_DEFAULT = 10;
|
||||
|
||||
/**
|
||||
* Suffixes to property names used to define transformation limits
|
||||
*/
|
||||
static final Collection<String> LIMIT_SUFFIXES = Arrays.asList(new String [] {
|
||||
'.'+TransformationOptionLimits.OPT_MAX_SOURCE_SIZE_K_BYTES,
|
||||
'.'+TransformationOptionLimits.OPT_TIMEOUT_MS,
|
||||
'.'+TransformationOptionLimits.OPT_MAX_PAGES,
|
||||
'.'+TransformationOptionLimits.OPT_READ_LIMIT_K_BYTES,
|
||||
'.'+TransformationOptionLimits.OPT_READ_LIMIT_TIME_MS,
|
||||
'.'+TransformationOptionLimits.OPT_PAGE_LIMIT
|
||||
MAX_SOURCE_SIZE_K_BYTES,
|
||||
TIMEOUT_MS,
|
||||
MAX_PAGES,
|
||||
READ_LIMIT_K_BYTES,
|
||||
READ_LIMIT_TIME_MS,
|
||||
PAGE_LIMIT
|
||||
});
|
||||
|
||||
/**
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2012 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2013 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -34,9 +34,6 @@ import org.springframework.extensions.surf.util.AbstractLifecycleBean;
|
||||
*/
|
||||
public class TransformerConfigImpl extends AbstractLifecycleBean implements TransformerConfig
|
||||
{
|
||||
/** The logger. */
|
||||
private static Log logger = LogFactory.getLog(TransformerConfigImpl.class);
|
||||
|
||||
private MimetypeService mimetypeService;
|
||||
|
||||
// Holds statistics about each transformer, sourceMimeType and targetMimetype combination.
|
||||
@@ -88,11 +85,11 @@ public class TransformerConfigImpl extends AbstractLifecycleBean implements Tran
|
||||
statistics= new TransformerConfigStatistics(this, mimetypeService);
|
||||
limits = new TransformerConfigLimits(getSubsystem(), mimetypeService);
|
||||
supported = new TransformerConfigSupported(getSubsystem(), mimetypeService);
|
||||
priorities = new TransformerConfigProperty(getSubsystem(), mimetypeService, PRIORITY);
|
||||
thresholdCounts = new TransformerConfigProperty(getSubsystem(), mimetypeService, THRESHOLD_COUNT);
|
||||
errorTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, ERROR_TIME);
|
||||
initialAverageTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, INITIAL_TIME);
|
||||
initialCounts = new TransformerConfigProperty(getSubsystem(), mimetypeService, INITIAL_COUNT);
|
||||
priorities = new TransformerConfigProperty(getSubsystem(), mimetypeService, PRIORITY, Integer.toString(PRIORITY_DEFAULT));
|
||||
thresholdCounts = new TransformerConfigProperty(getSubsystem(), mimetypeService, THRESHOLD_COUNT, "3");
|
||||
errorTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, ERROR_TIME, "120000");
|
||||
initialAverageTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, INITIAL_TIME, "0");
|
||||
initialCounts = new TransformerConfigProperty(getSubsystem(), mimetypeService, INITIAL_COUNT, "100000");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -22,8 +22,9 @@ import static org.alfresco.repo.content.transform.TransformerConfig.ANY;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.CONTENT;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.DEFAULT_TRANSFORMER;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.LIMIT_SUFFIXES;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.MIMETYPES_SEPARATOR;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.EXTENSIONS_SEPARATOR;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -59,91 +60,73 @@ public class TransformerConfigLimits extends TransformerPropertyNameExtractor
|
||||
limits = new HashMap<String, DoubleMap<String, String, TransformationOptionLimits>>();
|
||||
|
||||
// Gets all the transformer, source and target combinations in properties that define limits.
|
||||
Set<Triple<String, String, String>> transformerNamesAndExt =
|
||||
getTransformerNamesAndExt(MIMETYPES_SEPARATOR, LIMIT_SUFFIXES, true, subsystem, mimetypeService);
|
||||
Collection<TransformerSourceTargetValue> transformerNamesAndExt =
|
||||
getTransformerSourceTargetValues(LIMIT_SUFFIXES, true, subsystem, mimetypeService);
|
||||
|
||||
// Add the system wide default just in case it is not included, as we always need this one
|
||||
transformerNamesAndExt.add(new Triple<String,String,String>(DEFAULT_TRANSFORMER, ANY, ANY));
|
||||
TransformationOptionLimits options = getOrCreateTransformerOptionLimits(DEFAULT_TRANSFORMER, ANY, ANY);
|
||||
|
||||
// Populate the transformer limits
|
||||
for (Triple<String, String, String> triple: transformerNamesAndExt)
|
||||
for (TransformerSourceTargetValue property: transformerNamesAndExt)
|
||||
{
|
||||
String transformerName = triple.getFirst();
|
||||
String sourceExt = triple.getSecond();
|
||||
String targetExt = triple.getThird();
|
||||
String sourceMimetype = ANY.equals(sourceExt) ? ANY : mimetypeService.getMimetype(sourceExt);
|
||||
String targetMimetype = ANY.equals(targetExt) ? ANY : mimetypeService.getMimetype(targetExt);
|
||||
|
||||
TransformationOptionLimits limits = newTransformationOptionLimits(transformerName, sourceExt, targetExt, subsystem);
|
||||
|
||||
DoubleMap<String, String, TransformationOptionLimits> mimetypeLimits =
|
||||
this.limits.get(transformerName);
|
||||
if (mimetypeLimits == null)
|
||||
{
|
||||
mimetypeLimits = new DoubleMap<String, String, TransformationOptionLimits>(ANY, ANY);
|
||||
this.limits.put(transformerName, mimetypeLimits);
|
||||
}
|
||||
mimetypeLimits.put(sourceMimetype, targetMimetype, limits);
|
||||
options = getOrCreateTransformerOptionLimits(property.transformerName,
|
||||
property.sourceMimetype, property.targetMimetype);
|
||||
setTransformationOptionsFromProperties(options, property.transformerName, property.sourceExt, property.targetExt,
|
||||
property.value, property.suffix);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a TransformationOptionLimits object using property values.
|
||||
* @param transformerName
|
||||
* @param sourceExt is null for overall transformer options rather than for a specific mimetype pair
|
||||
* @param targetExt is null for overall transformer options rather than for a specific mimetype pair
|
||||
* @return a TransformationOptionLimits object or null if not created
|
||||
* Returns the TransformationOptionLimits for the transformer and mimetype combination,
|
||||
* creating and adding one if not already included.
|
||||
*/
|
||||
private TransformationOptionLimits newTransformationOptionLimits(String transformerName,
|
||||
String sourceExt, String targetExt, ChildApplicationContextFactory subsystem)
|
||||
private TransformationOptionLimits getOrCreateTransformerOptionLimits(String transformerName,
|
||||
String sourceMimetype, String targetMimetype)
|
||||
{
|
||||
TransformationOptionLimits limits = new TransformationOptionLimits();
|
||||
|
||||
// The overall values can be defined in two ways
|
||||
if (ANY.equals(sourceExt) && ANY.equals(targetExt))
|
||||
DoubleMap<String, String, TransformationOptionLimits> mimetypeLimits;
|
||||
mimetypeLimits = limits.get(transformerName);
|
||||
if (mimetypeLimits == null)
|
||||
{
|
||||
setTransformationOptionsFromProperties(limits, transformerName, null, null, subsystem);
|
||||
}
|
||||
setTransformationOptionsFromProperties(limits, transformerName, sourceExt, targetExt, subsystem);
|
||||
|
||||
return limits;
|
||||
mimetypeLimits = new DoubleMap<String, String, TransformationOptionLimits>(ANY, ANY);
|
||||
limits.put(transformerName, mimetypeLimits);
|
||||
}
|
||||
|
||||
private void setTransformationOptionsFromProperties(TransformationOptionLimits limits,
|
||||
String transformerName, String sourceExt, String targetExt, ChildApplicationContextFactory subsystem)
|
||||
TransformationOptionLimits options = mimetypeLimits.get(sourceMimetype, targetMimetype);
|
||||
if (options == null)
|
||||
{
|
||||
String propertyNameRoot = CONTENT+transformerName+
|
||||
(sourceExt == null ? "" : MIMETYPES_SEPARATOR+sourceExt+'.'+targetExt);
|
||||
int i = 0;
|
||||
for (String suffix: LIMIT_SUFFIXES)
|
||||
{
|
||||
String value = subsystem.getProperty(propertyNameRoot+suffix);
|
||||
if (value != null)
|
||||
options = new TransformationOptionLimits();
|
||||
mimetypeLimits.put(sourceMimetype, targetMimetype, options);
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
private void setTransformationOptionsFromProperties(TransformationOptionLimits options,
|
||||
String transformerName, String sourceExt, String targetExt, String value, String suffix)
|
||||
{
|
||||
long l = Long.parseLong(value);
|
||||
switch (i)
|
||||
if (suffix == TransformerConfig.MAX_SOURCE_SIZE_K_BYTES)
|
||||
{
|
||||
case 0:
|
||||
limits.setMaxSourceSizeKBytes(l);
|
||||
break;
|
||||
case 1:
|
||||
limits.setTimeoutMs(l);
|
||||
break;
|
||||
case 2:
|
||||
limits.setMaxPages((int)l);
|
||||
break;
|
||||
case 3:
|
||||
limits.setReadLimitKBytes(l);
|
||||
break;
|
||||
case 4:
|
||||
limits.setReadLimitTimeMs(l);
|
||||
break;
|
||||
case 5:
|
||||
limits.setPageLimit((int)l);
|
||||
break;
|
||||
options.setMaxSourceSizeKBytes(l);
|
||||
}
|
||||
else if (suffix == TransformerConfig.TIMEOUT_MS)
|
||||
{
|
||||
options.setTimeoutMs(l);
|
||||
}
|
||||
i++;
|
||||
else if (suffix == TransformerConfig.MAX_PAGES)
|
||||
{
|
||||
options.setMaxPages((int)l);
|
||||
}
|
||||
else if (suffix == TransformerConfig.READ_LIMIT_K_BYTES)
|
||||
{
|
||||
options.setReadLimitKBytes(l);
|
||||
}
|
||||
else if (suffix == TransformerConfig.READ_LIMIT_TIME_MS)
|
||||
{
|
||||
options.setReadLimitTimeMs(l);
|
||||
}
|
||||
else // if (suffix == TransformerConfig.PAGE_LIMIT)
|
||||
{
|
||||
options.setPageLimit((int)l);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -19,18 +19,15 @@
|
||||
package org.alfresco.repo.content.transform;
|
||||
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.ANY;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.CONTENT;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.DEFAULT_TRANSFORMER;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.MIMETYPES_SEPARATOR;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
|
||||
import org.alfresco.service.cmr.repository.MimetypeService;
|
||||
import org.alfresco.util.Triple;
|
||||
|
||||
/**
|
||||
* Provides access to single transformer configuration property depending on the
|
||||
@@ -43,78 +40,45 @@ public class TransformerConfigProperty extends TransformerPropertyNameExtractor
|
||||
private Map<String, DoubleMap<String, String, String>> values;
|
||||
|
||||
public TransformerConfigProperty(ChildApplicationContextFactory subsystem,
|
||||
MimetypeService mimetypeService, String propertySuffix)
|
||||
MimetypeService mimetypeService, String propertySuffix, String defaultValue)
|
||||
{
|
||||
setValues(subsystem, mimetypeService, propertySuffix);
|
||||
setValues(subsystem, mimetypeService, propertySuffix, defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the transformer values created from system properties.
|
||||
*/
|
||||
private void setValues(ChildApplicationContextFactory subsystem, MimetypeService mimetypeService, String propertySuffix)
|
||||
private void setValues(ChildApplicationContextFactory subsystem, MimetypeService mimetypeService,
|
||||
String suffix, String defaultValue)
|
||||
{
|
||||
values = new HashMap<String, DoubleMap<String, String, String>>();
|
||||
|
||||
// Gets all the transformer, source and target combinations in properties that define
|
||||
// this value.
|
||||
Set<Triple<String, String, String>> transformerNamesAndMimetypes =
|
||||
getTransformerNamesAndExt(MIMETYPES_SEPARATOR, Collections.singletonList(propertySuffix), true, subsystem, mimetypeService);
|
||||
Collection<TransformerSourceTargetValue> transformerNamesAndMimetypes =
|
||||
getTransformerSourceTargetValues(Collections.singletonList(suffix), true, subsystem, mimetypeService);
|
||||
|
||||
// Add the system wide default just in case it is not included, as we always need this one
|
||||
transformerNamesAndMimetypes.add(new Triple<String,String,String>(DEFAULT_TRANSFORMER, ANY, ANY));
|
||||
// Add the system wide default if it does not exist, as we always need this one
|
||||
TransformerSourceTargetValue transformerSourceTargetValue =
|
||||
new TransformerSourceTargetValue(DEFAULT_TRANSFORMER, ANY, ANY, defaultValue, suffix, mimetypeService);
|
||||
if (transformerNamesAndMimetypes.contains(transformerSourceTargetValue.key()))
|
||||
{
|
||||
transformerNamesAndMimetypes.add(transformerSourceTargetValue);
|
||||
}
|
||||
|
||||
// Populate the transformer values
|
||||
for (Triple<String, String, String> triple: transformerNamesAndMimetypes)
|
||||
for (TransformerSourceTargetValue property: transformerNamesAndMimetypes)
|
||||
{
|
||||
String transformerName = triple.getFirst();
|
||||
String sourceExt = triple.getSecond();
|
||||
String targetExt = triple.getThird();
|
||||
String sourceMimetype = ANY.equals(sourceExt) ? ANY : mimetypeService.getMimetype(sourceExt);
|
||||
String targetMimetype = ANY.equals(targetExt) ? ANY : mimetypeService.getMimetype(targetExt);
|
||||
|
||||
String value = newTransformerValue(transformerName, sourceExt, targetExt, subsystem, propertySuffix);
|
||||
|
||||
DoubleMap<String, String, String> mimetypeLimits = this.values.get(transformerName);
|
||||
DoubleMap<String, String, String> mimetypeLimits = this.values.get(property.transformerName);
|
||||
if (mimetypeLimits == null)
|
||||
{
|
||||
mimetypeLimits = new DoubleMap<String, String, String>(ANY, ANY);
|
||||
this.values.put(transformerName, mimetypeLimits);
|
||||
this.values.put(property.transformerName, mimetypeLimits);
|
||||
}
|
||||
mimetypeLimits.put(sourceMimetype, targetMimetype, value);
|
||||
mimetypeLimits.put(property.sourceMimetype, property.targetMimetype, property.value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a String object using property values.
|
||||
* @param transformerName
|
||||
* @param sourceExt is null for overall transformer options rather than for a specific mimetype pair
|
||||
* @param targetExt is null for overall transformer options rather than for a specific mimetype pair
|
||||
* @return a String object or null if not created
|
||||
*/
|
||||
private String newTransformerValue(String transformerName, String sourceExt, String targetExt,
|
||||
ChildApplicationContextFactory subsystem, String propertySuffix)
|
||||
{
|
||||
String value = getValueFromProperties(transformerName, sourceExt, targetExt, subsystem, propertySuffix);
|
||||
|
||||
// The overall values can be defined in another way
|
||||
if (value == null && ANY.equals(sourceExt) && ANY.equals(targetExt))
|
||||
{
|
||||
value = getValueFromProperties(transformerName, null, null, subsystem, propertySuffix);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
private String getValueFromProperties(String transformerName, String sourceExt, String targetExt,
|
||||
ChildApplicationContextFactory subsystem, String propertySuffix)
|
||||
{
|
||||
String propertyName = CONTENT+transformerName+
|
||||
(sourceExt == null ? "" : MIMETYPES_SEPARATOR+sourceExt+'.'+targetExt)+
|
||||
propertySuffix;
|
||||
String value = subsystem.getProperty(propertyName);
|
||||
return value;
|
||||
}
|
||||
|
||||
private String getString(ContentTransformer transformer, String sourceMimetype,
|
||||
String targetMimetype)
|
||||
{
|
||||
|
@@ -19,21 +19,16 @@
|
||||
package org.alfresco.repo.content.transform;
|
||||
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.ANY;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.CONTENT;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.MIMETYPES_SEPARATOR;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.SUPPORTED;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
|
||||
import org.alfresco.service.cmr.repository.MimetypeService;
|
||||
import org.alfresco.service.cmr.repository.TransformationOptions;
|
||||
import org.alfresco.util.Triple;
|
||||
|
||||
/**
|
||||
* Provides access to the lists of supported and unsupported mimetype transformations
|
||||
@@ -43,11 +38,6 @@ import org.alfresco.util.Triple;
|
||||
*/
|
||||
public class TransformerConfigSupported extends TransformerPropertyNameExtractor
|
||||
{
|
||||
private static final String IS_MIMETYPE_REGEX =
|
||||
"(application|audio|image|message|model|multipart|text|video)/.+";
|
||||
private static final String IS_MIMETYPE_SUBTYPE_WILDCARD_REGEX =
|
||||
"(application|audio|image|message|model|multipart|text|video)/.*\\" + ANY + ".*";
|
||||
|
||||
// Holds configured (entries only exist if configured rather than for all possible combinations)
|
||||
// of supported and unsupported mimetypes transformations for a transformer.
|
||||
// SourceMimetype and targetMimetype may be 'ANY' values to act as wild cards.
|
||||
@@ -58,69 +48,6 @@ public class TransformerConfigSupported extends TransformerPropertyNameExtractor
|
||||
setSupported(subsystem, mimetypeService);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the given string is a mime type expression.
|
||||
*
|
||||
* @param extension
|
||||
* @return whether or not the string is a mime type
|
||||
*/
|
||||
private boolean isMimetype(String extension)
|
||||
{
|
||||
return (extension != null && extension.matches(IS_MIMETYPE_REGEX));
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the given string is a mime type expression containing a wildcard
|
||||
* in the subtype.
|
||||
*
|
||||
* @param mimetype
|
||||
* @return whether or not the mime type contains a wildcard subtype
|
||||
*/
|
||||
private boolean isMimetypeSubtypeWildcard(String mimetype)
|
||||
{
|
||||
return (mimetype != null && mimetype.matches(IS_MIMETYPE_SUBTYPE_WILDCARD_REGEX));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the mimetypes which match the given <code>configMimetype</code> from the given
|
||||
* <code>mimetypeService</code>.
|
||||
* <p>
|
||||
* If the given mime type string contains one or more wildcards (*) in the subtype, the string
|
||||
* is converted to a regular expression and any mimetypes which match are returned.
|
||||
* <p>
|
||||
* If the given mime type string has no wildcards a list with only the given
|
||||
* mime type is returned.
|
||||
*
|
||||
* @param configMimetype
|
||||
* @param mimetypeService
|
||||
* @return the list of mime types which match the wildcard, or a list with just the given mimetype
|
||||
*/
|
||||
private List<String> getMatchingMimetypes(
|
||||
String configMimetype, MimetypeService mimetypeService)
|
||||
{
|
||||
if (configMimetype == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
List<String> matchingMimetypes = new ArrayList<String>(1);
|
||||
if (isMimetypeSubtypeWildcard(configMimetype))
|
||||
{
|
||||
String mimetypeWildcardRegex = configMimetype.replaceAll("\\" + ANY, ".*");
|
||||
for (String mimetype : mimetypeService.getMimetypes())
|
||||
{
|
||||
if (mimetype.matches(mimetypeWildcardRegex))
|
||||
{
|
||||
matchingMimetypes.add(mimetype);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
matchingMimetypes.add(configMimetype);
|
||||
}
|
||||
return matchingMimetypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the supported/unsupported mimetype transformations created from system properties.
|
||||
*/
|
||||
@@ -129,61 +56,22 @@ public class TransformerConfigSupported extends TransformerPropertyNameExtractor
|
||||
supported = new HashMap<String, SupportedAndUnsupportedTransformations>();
|
||||
|
||||
// Gets all the supported and unsupported transformer, source and target combinations
|
||||
Set<Triple<String, String, String>> transformerNamesAndMimetypes =
|
||||
getTransformerNamesAndExt(MIMETYPES_SEPARATOR, Collections.singletonList(SUPPORTED), false, subsystem, mimetypeService);
|
||||
Collection<TransformerSourceTargetValue> transformerNamesAndMimetypes =
|
||||
getTransformerSourceTargetValues(Collections.singletonList(SUPPORTED),
|
||||
false, subsystem, mimetypeService);
|
||||
|
||||
// Populate the transformer values
|
||||
for (Triple<String, String, String> triple: transformerNamesAndMimetypes)
|
||||
for (TransformerSourceTargetValue property: transformerNamesAndMimetypes)
|
||||
{
|
||||
String transformerName = triple.getFirst();
|
||||
String sourceExt = triple.getSecond();
|
||||
String targetExt = triple.getThird();
|
||||
|
||||
SupportedAndUnsupportedTransformations supportedBytransformer = this.supported.get(transformerName);
|
||||
|
||||
SupportedAndUnsupportedTransformations supportedBytransformer = this.supported.get(property.transformerName);
|
||||
if (supportedBytransformer == null)
|
||||
{
|
||||
supportedBytransformer = new SupportedAndUnsupportedTransformations();
|
||||
this.supported.put(transformerName, supportedBytransformer);
|
||||
this.supported.put(property.transformerName, supportedBytransformer);
|
||||
}
|
||||
boolean supported = getValueFromProperties(transformerName, sourceExt, targetExt, subsystem, SUPPORTED);
|
||||
|
||||
List<String> sourceMimetypes = new ArrayList<String>(1);
|
||||
List<String> targetMimetypes = new ArrayList<String>(1);
|
||||
if (isMimetype(sourceExt))
|
||||
{
|
||||
sourceMimetypes.addAll(getMatchingMimetypes(sourceExt, mimetypeService));
|
||||
boolean supported = property.value == null || property.value.equalsIgnoreCase("true");
|
||||
supportedBytransformer.put(property.sourceMimetype, property.targetMimetype, supported);
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceMimetypes.add(ANY.equals(sourceExt) ? ANY : mimetypeService.getMimetype(sourceExt));
|
||||
}
|
||||
if (isMimetype(targetExt))
|
||||
{
|
||||
targetMimetypes.addAll(getMatchingMimetypes(targetExt, mimetypeService));
|
||||
}
|
||||
else
|
||||
{
|
||||
targetMimetypes.add(ANY.equals(targetExt) ? ANY : mimetypeService.getMimetype(targetExt));
|
||||
}
|
||||
for (String sourceMimetype : sourceMimetypes)
|
||||
{
|
||||
for (String targetMimetype : targetMimetypes)
|
||||
{
|
||||
supportedBytransformer.put(sourceMimetype, targetMimetype, supported);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean getValueFromProperties(String transformerName, String sourceExt, String targetExt,
|
||||
ChildApplicationContextFactory subsystem, String propertySuffix)
|
||||
{
|
||||
String propertyName = CONTENT+transformerName+
|
||||
(sourceExt == null ? "" : MIMETYPES_SEPARATOR+sourceExt+'.'+targetExt)+
|
||||
propertySuffix;
|
||||
String value = subsystem.getProperty(propertyName);
|
||||
return value == null || value.equalsIgnoreCase("true");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -377,8 +377,7 @@ public class TransformerDebug
|
||||
long maxSourceSizeKBytes = trans.getMaxSourceSizeKBytes(frame.sourceMimetype, frame.targetMimetype, frame.options);
|
||||
String size = maxSourceSizeKBytes > 0 ? "< "+fileSize(maxSourceSizeKBytes*1024) : "";
|
||||
int padSize = 10 - size.length();
|
||||
String priority = Integer.toString(transformerConfig.getPriority(trans, frame.sourceMimetype, frame.targetMimetype));
|
||||
priority = spaces(2-priority.length())+priority;
|
||||
String priority = gePriority(trans, frame.sourceMimetype, frame.targetMimetype);
|
||||
log((c == 'a' ? "**" : " ") + (c++) + ") " + priority + ' ' + name + spaces(padName) +
|
||||
size + spaces(padSize) + ms(trans.getTransformationTime(frame.sourceMimetype, frame.targetMimetype)));
|
||||
}
|
||||
@@ -394,38 +393,46 @@ public class TransformerDebug
|
||||
}
|
||||
}
|
||||
|
||||
private String gePriority(ContentTransformer transformer, String sourceMimetype, String targetMimetype)
|
||||
{
|
||||
String priority = '[' + Integer.toString(transformerConfig.getPriority(transformer, sourceMimetype, targetMimetype)) + ']';
|
||||
priority = spaces(4-priority.length())+priority;
|
||||
return priority;
|
||||
}
|
||||
|
||||
public void inactiveTransformer(ContentTransformer transformer)
|
||||
{
|
||||
log(getName(transformer)+' '+ms(transformer.getTransformationTime(null, null))+" INACTIVE");
|
||||
}
|
||||
|
||||
public void activeTransformer(int mimetypePairCount, ContentTransformer transformer, String sourceMimetype,
|
||||
String targetMimetype, long maxSourceSizeKBytes, Boolean explicit, boolean firstMimetypePair)
|
||||
String targetMimetype, long maxSourceSizeKBytes, boolean firstMimetypePair)
|
||||
{
|
||||
if (firstMimetypePair)
|
||||
{
|
||||
log(getName(transformer)+' '+ms(transformer.getTransformationTime(sourceMimetype, targetMimetype)));
|
||||
}
|
||||
String i = Integer.toString(mimetypePairCount);
|
||||
String priority = gePriority(transformer, sourceMimetype, targetMimetype);
|
||||
log(spaces(5-i.length())+mimetypePairCount+") "+getMimetypeExt(sourceMimetype)+getMimetypeExt(targetMimetype)+
|
||||
priority +
|
||||
' '+fileSize((maxSourceSizeKBytes > 0) ? maxSourceSizeKBytes*1024 : maxSourceSizeKBytes)+
|
||||
(maxSourceSizeKBytes == 0 || (explicit != null && !explicit) ? " disabled" : "")+
|
||||
(explicit == null ? "" : explicit ? " EXPLICIT" : " not explicit"));
|
||||
(maxSourceSizeKBytes == 0 ? " disabled" : ""));
|
||||
}
|
||||
|
||||
public void activeTransformer(String sourceMimetype, String targetMimetype,
|
||||
int transformerCount, ContentTransformer transformer, long maxSourceSizeKBytes,
|
||||
Boolean explicit, boolean firstTransformer)
|
||||
boolean firstTransformer)
|
||||
{
|
||||
String mimetypes = firstTransformer
|
||||
? getMimetypeExt(sourceMimetype)+getMimetypeExt(targetMimetype)
|
||||
: spaces(10);
|
||||
char c = (char)('a'+transformerCount);
|
||||
String priority = gePriority(transformer, sourceMimetype, targetMimetype);
|
||||
log(mimetypes+
|
||||
" "+c+") "+getName(transformer)+' '+ms(transformer.getTransformationTime(sourceMimetype, targetMimetype))+
|
||||
" "+c+") " + priority + ' ' + getName(transformer)+' '+ms(transformer.getTransformationTime(sourceMimetype, targetMimetype))+
|
||||
' '+fileSize((maxSourceSizeKBytes > 0) ? maxSourceSizeKBytes*1024 : maxSourceSizeKBytes)+
|
||||
(maxSourceSizeKBytes == 0 || (explicit != null && !explicit) ? " disabled" : "")+
|
||||
(explicit == null ? "" : explicit ? " EXPLICIT" : " not explicit"));
|
||||
(maxSourceSizeKBytes == 0 ? " disabled" : ""));
|
||||
}
|
||||
|
||||
private int getLongestTransformerNameLength(List<ContentTransformer> transformers,
|
||||
|
@@ -22,9 +22,13 @@ import static org.alfresco.repo.content.transform.TransformerConfig.ANY;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.CONTENT;
|
||||
import static org.alfresco.repo.content.transform.TransformerConfig.PREFIX;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
|
||||
import org.alfresco.service.cmr.repository.MimetypeService;
|
||||
@@ -37,11 +41,18 @@ import org.alfresco.util.Triple;
|
||||
*/
|
||||
public abstract class TransformerPropertyNameExtractor
|
||||
{
|
||||
private static String[] SEPARATORS = new String[] {TransformerConfig.EXTENSIONS_SEPARATOR , TransformerConfig.MIMETYPES_SEPARATOR};
|
||||
private static Pattern EXTENSIONS_SEPARATOR = Pattern.compile("[^].]\\.");
|
||||
private static String[] NO_EXT_MATCH = new String[0];
|
||||
private static final String IS_MIMETYPE_SUBTYPE_WILDCARD_REGEX =
|
||||
"(application|audio|image|message|model|multipart|text|video)/.*\\" + ANY + ".*";
|
||||
|
||||
/**
|
||||
* Returns a set of transformer names, source extensions and target mimetype extensions
|
||||
* from property names that defined transformation limits.
|
||||
* @param separator after the transformer name and the source mimetype extension.
|
||||
* Must start and end in a '.'.
|
||||
* Returns a set of transformer name, source extension, target extension and value
|
||||
* from property names that defined transformation limits. When the separator indicates
|
||||
* it is followed by a regular expression that matches multiple mimetypes, more than one
|
||||
* value may be added. When there is a value defined for specific extensions it wins over
|
||||
* any regular expression value.
|
||||
* @param suffixes possible endings to the property names after the target mimetype extension.
|
||||
* Must start with a '.' if there is a suffix.
|
||||
* @param includeSummary if true will also look for property names without the separator,
|
||||
@@ -49,43 +60,246 @@ public abstract class TransformerPropertyNameExtractor
|
||||
* @param subsystem that provides the properties
|
||||
* @param mimetypeService
|
||||
*/
|
||||
protected Set<Triple<String,String,String>> getTransformerNamesAndExt(String separator, Collection<String> suffixes, boolean includeSummary,
|
||||
ChildApplicationContextFactory subsystem, MimetypeService mimetypeService)
|
||||
protected Collection<TransformerSourceTargetValue> getTransformerSourceTargetValues(Collection<String> suffixes,
|
||||
boolean includeSummary, ChildApplicationContextFactory subsystem, MimetypeService mimetypeService)
|
||||
{
|
||||
Set<Triple<String,String,String>> transformerNamesAndExtensions =
|
||||
new HashSet<Triple<String,String,String>>();
|
||||
Map<Triple<String, String, String>, TransformerSourceTargetValue> TransformerSourceTargetValues =
|
||||
new HashMap<Triple<String, String, String>, TransformerSourceTargetValue>();
|
||||
|
||||
for (String propertyName: subsystem.getPropertyNames())
|
||||
{
|
||||
if (propertyName.startsWith(PREFIX))
|
||||
{
|
||||
suffixesLoop:
|
||||
for (String suffix: suffixes)
|
||||
{
|
||||
if (propertyName.endsWith(suffix))
|
||||
{
|
||||
String value = subsystem.getProperty(propertyName);
|
||||
String name = propertyName.substring(CONTENT.length(), propertyName.length()-suffix.length());
|
||||
boolean separatorMatch = false;
|
||||
for (String separator: SEPARATORS)
|
||||
{
|
||||
int i = name.lastIndexOf(separator);
|
||||
if (i != -1)
|
||||
{
|
||||
String[] ext = name.substring(i+separator.length()).split("\\.");
|
||||
separatorMatch = true;
|
||||
String extensions = name.substring(i+separator.length());
|
||||
String[] ext = splitExt(extensions);
|
||||
if (ext.length == 2)
|
||||
{
|
||||
name = name.substring(0, i);
|
||||
transformerNamesAndExtensions.add(
|
||||
new Triple<String,String,String>(name, ext[0], ext[1]));
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (includeSummary)
|
||||
if (separator == TransformerConfig.EXTENSIONS_SEPARATOR)
|
||||
{
|
||||
transformerNamesAndExtensions.add(new Triple<String,String,String>(name, ANY, ANY));
|
||||
break;
|
||||
addTransformerSourceTargetValue(TransformerSourceTargetValues,
|
||||
false, name, ext[0], ext[1], value, suffix, mimetypeService);
|
||||
}
|
||||
else // if (separator == TransformerConfig.MIMETYPES_SEPARATOR)
|
||||
{
|
||||
List<String> sourceMimetypes = getMatchingMimetypes(ext[0], mimetypeService);
|
||||
List<String> targetMimetypes = getMatchingMimetypes(ext[1], mimetypeService);
|
||||
for (String sourceMimetype : sourceMimetypes)
|
||||
{
|
||||
for (String targetMimetype : targetMimetypes)
|
||||
{
|
||||
addTransformerSourceTargetValue(TransformerSourceTargetValues,
|
||||
true, name, sourceMimetype, targetMimetype, value,
|
||||
suffix, mimetypeService);
|
||||
}
|
||||
}
|
||||
}
|
||||
break suffixesLoop;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!separatorMatch && includeSummary)
|
||||
{
|
||||
addTransformerSourceTargetValue(TransformerSourceTargetValues, false, name, ANY, ANY,
|
||||
value, suffix, mimetypeService);
|
||||
break suffixesLoop;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return transformerNamesAndExtensions;
|
||||
return TransformerSourceTargetValues.values();
|
||||
}
|
||||
|
||||
/**
|
||||
* Optionally adds a new TransformerSourceTargetValue. If the supplied value is not constructed from
|
||||
* from a property that uses a regular expression against a mimetype, a new value is always added and
|
||||
* will replace any existing value. If not, the value is only added if there is not a current value.
|
||||
* In other words properties that include extensions win out over those that use mimetypes.
|
||||
*/
|
||||
private void addTransformerSourceTargetValue(
|
||||
Map<Triple<String, String, String>, TransformerSourceTargetValue> transformerSourceTargetValues,
|
||||
boolean mimetypeProperty, String name, String sourceExt, String targetExt, String value,
|
||||
String suffix, MimetypeService mimetypeService)
|
||||
{
|
||||
TransformerSourceTargetValue transformerSourceTargetValue =
|
||||
new TransformerSourceTargetValue(name, sourceExt, targetExt, value, suffix, mimetypeService);
|
||||
Triple<String, String, String> key = transformerSourceTargetValue.key();
|
||||
|
||||
if (!mimetypeProperty || !transformerSourceTargetValues.containsKey(key))
|
||||
{
|
||||
transformerSourceTargetValues.put(key, transformerSourceTargetValue);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Splits the extensions into two parts. It does this by looking for a '.'
|
||||
* that is not escaped (preceded by a back slash '\').
|
||||
* This is to allow regular expressions to be used for mimetypes.
|
||||
*/
|
||||
private String[] splitExt(String extensions)
|
||||
{
|
||||
String[] ext = NO_EXT_MATCH;
|
||||
Matcher matcher = EXTENSIONS_SEPARATOR.matcher(extensions);
|
||||
if (matcher.find())
|
||||
{
|
||||
int i = matcher.start();
|
||||
ext = new String[2];
|
||||
ext[0] = extensions.substring(0, i);
|
||||
ext[1] = extensions.substring(0, i);
|
||||
}
|
||||
return ext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the extensions of the mimetypes which match the given <code>configMimetype</code> from the given
|
||||
* <code>mimetypeService</code>.
|
||||
* <p>
|
||||
* If the given mimetype string contains one or more wildcards (*) in the subtype, the string
|
||||
* is converted to a regular expression and the extensions of the mimetypes which match are returned.
|
||||
* <p>
|
||||
* If the given mimetype string has no wildcards a list with only the given
|
||||
* mimetype's extension is returned.
|
||||
*
|
||||
* @param configMimetype
|
||||
* @param mimetypeService
|
||||
* @return the list of extensions of mimetypes which match
|
||||
*/
|
||||
private List<String> getMatchingMimetypes(
|
||||
String configMimetype, MimetypeService mimetypeService)
|
||||
{
|
||||
if (configMimetype == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
List<String> matchingMimetypes = new ArrayList<String>(1);
|
||||
if (isMimetypeSubtypeWildcard(configMimetype))
|
||||
{
|
||||
String mimetypeWildcardRegex = configMimetype.replaceAll("\\" + ANY, ".*");
|
||||
for (String mimetype : mimetypeService.getMimetypes())
|
||||
{
|
||||
if (mimetype.matches(mimetypeWildcardRegex))
|
||||
{
|
||||
String ext = mimetypeService.getExtension(mimetype);
|
||||
matchingMimetypes.add(ext);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
String ext = mimetypeService.getExtension(configMimetype);
|
||||
matchingMimetypes.add(ext);
|
||||
}
|
||||
return matchingMimetypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the given string is a mime type expression containing a wildcard
|
||||
* in the subtype.
|
||||
*
|
||||
* @param mimetype
|
||||
* @return whether or not the mime type contains a wildcard subtype
|
||||
*/
|
||||
private boolean isMimetypeSubtypeWildcard(String mimetype)
|
||||
{
|
||||
return (mimetype != null && mimetype.matches(IS_MIMETYPE_SUBTYPE_WILDCARD_REGEX));
|
||||
}
|
||||
}
|
||||
|
||||
class TransformerSourceTargetValue
|
||||
{
|
||||
final String transformerName;
|
||||
final String sourceExt;
|
||||
final String targetExt;
|
||||
final String value;
|
||||
final String suffix;
|
||||
final String sourceMimetype;
|
||||
final String targetMimetype;
|
||||
|
||||
public TransformerSourceTargetValue(String transformerName, String sourceExt,
|
||||
String targetExt, String value, String suffix, MimetypeService mimetypeService)
|
||||
{
|
||||
this.transformerName = transformerName;
|
||||
this.sourceExt = sourceExt;
|
||||
this.targetExt = targetExt;
|
||||
this.value = value;
|
||||
this.suffix = suffix;
|
||||
this.sourceMimetype = ANY.equals(sourceExt) ? ANY : mimetypeService.getMimetype(sourceExt);
|
||||
this.targetMimetype = ANY.equals(targetExt) ? ANY : mimetypeService.getMimetype(targetExt);
|
||||
}
|
||||
|
||||
public Triple<String, String, String> key()
|
||||
{
|
||||
return new Triple<String, String, String>(transformerName, sourceExt, targetExt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((sourceExt == null) ? 0 : sourceExt.hashCode());
|
||||
result = prime * result + ((targetExt == null) ? 0 : targetExt.hashCode());
|
||||
result = prime * result + ((transformerName == null) ? 0 : transformerName.hashCode());
|
||||
result = prime * result + ((value == null) ? 0 : value.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
TransformerSourceTargetValue other = (TransformerSourceTargetValue) obj;
|
||||
if (sourceExt == null)
|
||||
{
|
||||
if (other.sourceExt != null)
|
||||
return false;
|
||||
}
|
||||
else if (!sourceExt.equals(other.sourceExt))
|
||||
return false;
|
||||
if (targetExt == null)
|
||||
{
|
||||
if (other.targetExt != null)
|
||||
return false;
|
||||
}
|
||||
else if (!targetExt.equals(other.targetExt))
|
||||
return false;
|
||||
if (transformerName == null)
|
||||
{
|
||||
if (other.transformerName != null)
|
||||
return false;
|
||||
}
|
||||
else if (!transformerName.equals(other.transformerName))
|
||||
return false;
|
||||
if (value == null)
|
||||
{
|
||||
if (other.value != null)
|
||||
return false;
|
||||
}
|
||||
else if (!value.equals(other.value))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user