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
|
# Transformer specific settings
|
||||||
# =============================
|
# =============================
|
||||||
content.transformer.ImageMagick.mimetypes.png.png.priority=5
|
content.transformer.ImageMagick.extensions.png.png.priority=5
|
||||||
content.transformer.ImageMagick.mimetypes.pdf.png.priority=5
|
content.transformer.ImageMagick.extensions.pdf.png.priority=5
|
||||||
content.transformer.ImageMagick.mimetypes.ai.png.priority=5
|
content.transformer.ImageMagick.extensions.ai.png.priority=5
|
||||||
|
|
||||||
content.transformer.iWorksQuicklooks.mimetypes.key.jpg.priority=5
|
content.transformer.iWorksQuicklooks.extensions.key.jpg.priority=5
|
||||||
content.transformer.iWorksQuicklooks.mimetypes.pages.jpg.priority=5
|
content.transformer.iWorksQuicklooks.extensions.pages.jpg.priority=5
|
||||||
content.transformer.iWorksQuicklooks.mimetypes.numbers.jpg.priority=5
|
content.transformer.iWorksQuicklooks.extensions.numbers.jpg.priority=5
|
||||||
content.transformer.iWorksQuicklooks.mimetypes.key.pdf.priority=5
|
content.transformer.iWorksQuicklooks.extensions.key.pdf.priority=5
|
||||||
content.transformer.iWorksQuicklooks.mimetypes.pages.pdf.priority=5
|
content.transformer.iWorksQuicklooks.extensions.pages.pdf.priority=5
|
||||||
content.transformer.iWorksQuicklooks.mimetypes.numbers.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.extensions.pdf.png.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.eps.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.eps.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.jp2.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.jp2.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.psd.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.psd.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ppj.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.ppj.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.cgm.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.cgm.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.gif.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.gif.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ief.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.ief.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.bmp.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.bmp.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.jpg.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.jpg.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.pbm.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.pbm.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.pgm.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.pgm.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.pnm.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.pnm.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ppm.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.ppm.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.ras.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.ras.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.tiff.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.tiff.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.xbm.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.xbm.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.xpm.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.xpm.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.xwd.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.xwd.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.bin.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.bin.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.dwt.supported=true
|
content.transformer.complex.PDF.Image.extensions.pdf.dwt.supported=true
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.jpg.priority=5
|
content.transformer.complex.PDF.Image.extensions.pdf.jpg.priority=5
|
||||||
content.transformer.complex.PDF.Image.mimetypes.pdf.gif.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.extensions.ai.png.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.eps.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.eps.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.jp2.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.jp2.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.psd.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.psd.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ppj.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ppj.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.cgm.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.cgm.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.gif.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.gif.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ief.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ief.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.bmp.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.bmp.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.jpg.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.jpg.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.pbm.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.pbm.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.pgm.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.pgm.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.pnm.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.pnm.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ppm.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ppm.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.ras.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.ras.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.tiff.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.tiff.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.xbm.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.xbm.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.xpm.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.xpm.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.xwd.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.xwd.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.bin.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.bin.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.dwt.supported=true
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.dwt.supported=true
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.jpg.priority=5
|
content.transformer.complex.AdobeIllustrator.Image.extensions.ai.jpg.priority=5
|
||||||
content.transformer.complex.AdobeIllustrator.Image.mimetypes.ai.gif.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.extensions.key.png.priority=5
|
||||||
content.transformer.complex.iWorks.Image.mimetypes.numbers.png.priority=5
|
content.transformer.complex.iWorks.Image.extensions.numbers.png.priority=5
|
||||||
content.transformer.complex.iWorks.Image.mimetypes.pages.png.priority=5
|
content.transformer.complex.iWorks.Image.extensions.pages.png.priority=5
|
||||||
|
|
||||||
content.transformer.OpenOffice.mimetypes.*.xlsm.supported=false
|
content.transformer.OpenOffice.extensions.*.xlsm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.pptm.supported=false
|
content.transformer.OpenOffice.extensions.*.pptm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.sldm.supported=false
|
content.transformer.OpenOffice.extensions.*.sldm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.xltx.supported=false
|
content.transformer.OpenOffice.extensions.*.xltx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.docx.supported=false
|
content.transformer.OpenOffice.extensions.*.docx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.potx.supported=false
|
content.transformer.OpenOffice.extensions.*.potx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.xlsx.supported=false
|
content.transformer.OpenOffice.extensions.*.xlsx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.pptx.supported=false
|
content.transformer.OpenOffice.extensions.*.pptx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.xlam.supported=false
|
content.transformer.OpenOffice.extensions.*.xlam.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.docm.supported=false
|
content.transformer.OpenOffice.extensions.*.docm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.xltm.supported=false
|
content.transformer.OpenOffice.extensions.*.xltm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.dotx.supported=false
|
content.transformer.OpenOffice.extensions.*.dotx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.xlsb.supported=false
|
content.transformer.OpenOffice.extensions.*.xlsb.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.sldx.supported=false
|
content.transformer.OpenOffice.extensions.*.sldx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.ppsm.supported=false
|
content.transformer.OpenOffice.extensions.*.ppsm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.txt.supported=false
|
content.transformer.OpenOffice.extensions.*.txt.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.potm.supported=false
|
content.transformer.OpenOffice.extensions.*.potm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.ppam.supported=false
|
content.transformer.OpenOffice.extensions.*.ppam.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.dotm.supported=false
|
content.transformer.OpenOffice.extensions.*.dotm.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.*.ppsx.supported=false
|
content.transformer.OpenOffice.extensions.*.ppsx.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.html.pdf.supported=false
|
content.transformer.OpenOffice.extensions.html.pdf.supported=false
|
||||||
content.transformer.OpenOffice.mimetypes.xlsm.pdf.maxSourceSizeKBytes=1536
|
content.transformer.OpenOffice.extensions.xlsm.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.OpenOffice.mimetypes.pptm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.pptm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.xls.pdf.maxSourceSizeKBytes=10240
|
content.transformer.OpenOffice.extensions.xls.pdf.maxSourceSizeKBytes=10240
|
||||||
content.transformer.OpenOffice.mimetypes.sldm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.sldm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.xltx.pdf.maxSourceSizeKBytes=1536
|
content.transformer.OpenOffice.extensions.xltx.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.OpenOffice.mimetypes.potx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.potx.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.docx.pdf.maxSourceSizeKBytes=768
|
content.transformer.OpenOffice.extensions.docx.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.OpenOffice.mimetypes.xlsx.pdf.maxSourceSizeKBytes=1536
|
content.transformer.OpenOffice.extensions.xlsx.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.OpenOffice.mimetypes.pptx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.pptx.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.xlam.pdf.maxSourceSizeKBytes=1536
|
content.transformer.OpenOffice.extensions.xlam.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.OpenOffice.mimetypes.ppt.pdf.maxSourceSizeKBytes=6144
|
content.transformer.OpenOffice.extensions.ppt.pdf.maxSourceSizeKBytes=6144
|
||||||
content.transformer.OpenOffice.mimetypes.docm.pdf.maxSourceSizeKBytes=768
|
content.transformer.OpenOffice.extensions.docm.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.OpenOffice.mimetypes.xltm.pdf.maxSourceSizeKBytes=1536
|
content.transformer.OpenOffice.extensions.xltm.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.OpenOffice.mimetypes.dotx.pdf.maxSourceSizeKBytes=768
|
content.transformer.OpenOffice.extensions.dotx.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.OpenOffice.mimetypes.xlsb.pdf.maxSourceSizeKBytes=1536
|
content.transformer.OpenOffice.extensions.xlsb.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.OpenOffice.mimetypes.sldx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.sldx.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.ppsm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.ppsm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.potm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.potm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.txt.pdf.maxSourceSizeKBytes=5120
|
content.transformer.OpenOffice.extensions.txt.pdf.maxSourceSizeKBytes=5120
|
||||||
content.transformer.OpenOffice.mimetypes.ppam.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.ppam.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.dotm.pdf.maxSourceSizeKBytes=768
|
content.transformer.OpenOffice.extensions.dotm.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.OpenOffice.mimetypes.doc.pdf.maxSourceSizeKBytes=10240
|
content.transformer.OpenOffice.extensions.doc.pdf.maxSourceSizeKBytes=10240
|
||||||
content.transformer.OpenOffice.mimetypes.vsd.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.vsd.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.OpenOffice.mimetypes.ppsx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.OpenOffice.extensions.ppsx.pdf.maxSourceSizeKBytes=4096
|
||||||
|
|
||||||
content.transformer.OpenOffice.Html2Pdf.mimetypes.html.pdf.supported=true
|
content.transformer.OpenOffice.Html2Pdf.extensions.html.pdf.supported=true
|
||||||
content.transformer.OpenOffice.Html2Pdf.mimetypes.html.pdf.priority=5
|
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.extensions.csv.pdf.supported=true
|
||||||
content.transformer.PdfBox.TextToPdf.mimetypes.xml.pdf.supported=true
|
content.transformer.PdfBox.TextToPdf.extensions.xml.pdf.supported=true
|
||||||
content.transformer.PdfBox.TextToPdf.maxSourceSizeKBytes=10240
|
content.transformer.PdfBox.TextToPdf.maxSourceSizeKBytes=10240
|
||||||
|
|
||||||
content.transformer.complex.Text.Image.mimetypes.csv.*.supported=true
|
content.transformer.complex.Text.Image.extensions.csv.*.supported=true
|
||||||
content.transformer.complex.Text.Image.mimetypes.xml.*.supported=true
|
content.transformer.complex.Text.Image.extensions.xml.*.supported=true
|
||||||
content.transformer.complex.Text.Image.mimetypes.txt.*.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.extensions.xlsm.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.pptm.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.pptm.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xls.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.xls.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.sldm.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.sldm.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xltx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.xltx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.docx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.docx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.potx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.potx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xlsx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.xlsx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.pptx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.pptx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xlam.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.xlam.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppt.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.ppt.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.docm.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.docm.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xltm.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.xltm.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.dotx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.dotx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.sldx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.sldx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppsm.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.ppsm.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.txt.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.txt.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppam.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.ppam.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.dotm.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.dotm.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.doc.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.doc.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.ppsx.txt.supported=false
|
content.transformer.complex.OpenOffice.PdfBox.extensions.ppsx.txt.supported=false
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.xlsb.txt.maxSourceSizeKBytes=1024
|
content.transformer.complex.OpenOffice.PdfBox.extensions.xlsb.txt.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.PdfBox.mimetypes.potm.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.maxSourceSizeKBytes=5120
|
||||||
content.transformer.Pdf2swf.mimetypes.pdf.swf.supported=true
|
content.transformer.Pdf2swf.extensions.pdf.swf.supported=true
|
||||||
content.transformer.Pdf2swf.mimetypes.ai.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.extensions.xlsm.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.pptm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.pptm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xls.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xls.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.sldm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.sldm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xltx.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xltx.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.docx.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.docx.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.potx.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.potx.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xlsx.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xlsx.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.pptx.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.pptx.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xlam.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xlam.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppt.swf.maxSourceSizeKBytes=6144
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.ppt.swf.maxSourceSizeKBytes=6144
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.docm.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.docm.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xltm.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xltm.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.dotx.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.dotx.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.xlsb.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.xlsb.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.sldx.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.sldx.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppsm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.ppsm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.potm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.potm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.txt.swf.maxSourceSizeKBytes=5120
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.txt.swf.maxSourceSizeKBytes=5120
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppam.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.ppam.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.dotm.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.dotm.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.doc.swf.maxSourceSizeKBytes=1536
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.doc.swf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.vsd.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.OpenOffice.Pdf2swf.extensions.vsd.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.OpenOffice.Pdf2swf.mimetypes.ppsx.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.extensions.csv.swf.supported=true
|
||||||
content.transformer.complex.Text.Pdf2swf.mimetypes.xml.swf.supported=true
|
content.transformer.complex.Text.Pdf2swf.extensions.xml.swf.supported=true
|
||||||
content.transformer.complex.Text.Pdf2swf.maxSourceSizeKBytes=5120
|
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.extensions.*.xlsm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.pptm.supported=false
|
content.transformer.JodConverter.extensions.*.pptm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.sldm.supported=false
|
content.transformer.JodConverter.extensions.*.sldm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.xltx.supported=false
|
content.transformer.JodConverter.extensions.*.xltx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.docx.supported=false
|
content.transformer.JodConverter.extensions.*.docx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.potx.supported=false
|
content.transformer.JodConverter.extensions.*.potx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.xlsx.supported=false
|
content.transformer.JodConverter.extensions.*.xlsx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.pptx.supported=false
|
content.transformer.JodConverter.extensions.*.pptx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.xlam.supported=false
|
content.transformer.JodConverter.extensions.*.xlam.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.docm.supported=false
|
content.transformer.JodConverter.extensions.*.docm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.xltm.supported=false
|
content.transformer.JodConverter.extensions.*.xltm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.dotx.supported=false
|
content.transformer.JodConverter.extensions.*.dotx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.xlsb.supported=false
|
content.transformer.JodConverter.extensions.*.xlsb.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.sldx.supported=false
|
content.transformer.JodConverter.extensions.*.sldx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.ppsm.supported=false
|
content.transformer.JodConverter.extensions.*.ppsm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.txt.supported=false
|
content.transformer.JodConverter.extensions.*.txt.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.potm.supported=false
|
content.transformer.JodConverter.extensions.*.potm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.ppam.supported=false
|
content.transformer.JodConverter.extensions.*.ppam.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.dotm.supported=false
|
content.transformer.JodConverter.extensions.*.dotm.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.*.ppsx.supported=false
|
content.transformer.JodConverter.extensions.*.ppsx.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.html.pdf.supported=false
|
content.transformer.JodConverter.extensions.html.pdf.supported=false
|
||||||
content.transformer.JodConverter.mimetypes.xlsm.pdf.maxSourceSizeKBytes=1536
|
content.transformer.JodConverter.extensions.xlsm.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.JodConverter.mimetypes.pptm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.pptm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.xls.pdf.maxSourceSizeKBytes=10240
|
content.transformer.JodConverter.extensions.xls.pdf.maxSourceSizeKBytes=10240
|
||||||
content.transformer.JodConverter.mimetypes.sldm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.sldm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.xltx.pdf.maxSourceSizeKBytes=1536
|
content.transformer.JodConverter.extensions.xltx.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.JodConverter.mimetypes.potx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.potx.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.docx.pdf.maxSourceSizeKBytes=768
|
content.transformer.JodConverter.extensions.docx.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.JodConverter.mimetypes.xlsx.pdf.maxSourceSizeKBytes=1536
|
content.transformer.JodConverter.extensions.xlsx.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.JodConverter.mimetypes.pptx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.pptx.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.xlam.pdf.maxSourceSizeKBytes=1536
|
content.transformer.JodConverter.extensions.xlam.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.JodConverter.mimetypes.ppt.pdf.maxSourceSizeKBytes=6144
|
content.transformer.JodConverter.extensions.ppt.pdf.maxSourceSizeKBytes=6144
|
||||||
content.transformer.JodConverter.mimetypes.docm.pdf.maxSourceSizeKBytes=768
|
content.transformer.JodConverter.extensions.docm.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.JodConverter.mimetypes.xltm.pdf.maxSourceSizeKBytes=1536
|
content.transformer.JodConverter.extensions.xltm.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.JodConverter.mimetypes.dotx.pdf.maxSourceSizeKBytes=768
|
content.transformer.JodConverter.extensions.dotx.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.JodConverter.mimetypes.xlsb.pdf.maxSourceSizeKBytes=1536
|
content.transformer.JodConverter.extensions.xlsb.pdf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.JodConverter.mimetypes.sldx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.sldx.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.ppsm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.ppsm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.potm.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.potm.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.txt.pdf.maxSourceSizeKBytes=5120
|
content.transformer.JodConverter.extensions.txt.pdf.maxSourceSizeKBytes=5120
|
||||||
content.transformer.JodConverter.mimetypes.ppam.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.ppam.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.dotm.pdf.maxSourceSizeKBytes=768
|
content.transformer.JodConverter.extensions.dotm.pdf.maxSourceSizeKBytes=768
|
||||||
content.transformer.JodConverter.mimetypes.doc.pdf.maxSourceSizeKBytes=10240
|
content.transformer.JodConverter.extensions.doc.pdf.maxSourceSizeKBytes=10240
|
||||||
content.transformer.JodConverter.mimetypes.vsd.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.vsd.pdf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.JodConverter.mimetypes.ppsx.pdf.maxSourceSizeKBytes=4096
|
content.transformer.JodConverter.extensions.ppsx.pdf.maxSourceSizeKBytes=4096
|
||||||
|
|
||||||
content.transformer.JodConverter.Html2Pdf.mimetypes.html.pdf.supported=true
|
content.transformer.JodConverter.Html2Pdf.extensions.html.pdf.supported=true
|
||||||
content.transformer.JodConverter.Html2Pdf.mimetypes.html.pdf.priority=5
|
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.extensions.xlsm.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.pptm.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.pptm.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xls.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.xls.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.sldm.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.sldm.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xltx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.xltx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.docx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.docx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.potx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.potx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xlsx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.xlsx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.pptx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.pptx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xlam.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.xlam.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppt.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.ppt.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.docm.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.docm.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xltm.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.xltm.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.dotx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.dotx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.sldx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.sldx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppsm.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.ppsm.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.txt.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.txt.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppam.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.ppam.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.dotm.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.dotm.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.doc.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.doc.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.ppsx.txt.supported=false
|
content.transformer.complex.JodConverter.PdfBox.extensions.ppsx.txt.supported=false
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.xlsb.txt.maxSourceSizeKBytes=1024
|
content.transformer.complex.JodConverter.PdfBox.extensions.xlsb.txt.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.PdfBox.mimetypes.potm.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.extensions.xlsm.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.pptm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.pptm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xls.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.xls.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.sldm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.sldm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xltx.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.xltx.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.docx.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.docx.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.potx.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.potx.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xlsx.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.xlsx.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.pptx.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.pptx.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xlam.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.xlam.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppt.swf.maxSourceSizeKBytes=6144
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.ppt.swf.maxSourceSizeKBytes=6144
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.docm.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.docm.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xltm.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.xltm.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.dotx.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.dotx.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.xlsb.swf.maxSourceSizeKBytes=1024
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.xlsb.swf.maxSourceSizeKBytes=1024
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.sldx.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.sldx.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppsm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.ppsm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.potm.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.potm.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.txt.swf.maxSourceSizeKBytes=5120
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.txt.swf.maxSourceSizeKBytes=5120
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppam.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.ppam.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.dotm.swf.maxSourceSizeKBytes=256
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.dotm.swf.maxSourceSizeKBytes=256
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.doc.swf.maxSourceSizeKBytes=1536
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.doc.swf.maxSourceSizeKBytes=1536
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.vsd.swf.maxSourceSizeKBytes=4096
|
content.transformer.complex.JodConverter.Pdf2swf.extensions.vsd.swf.maxSourceSizeKBytes=4096
|
||||||
content.transformer.complex.JodConverter.Pdf2swf.mimetypes.ppsx.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) &&
|
MimetypeMap.MIMETYPE_IMAGE_PNG.equals(targetMimetype) &&
|
||||||
transformerDebug.getFileName(transformOptions, true, 0).contains("debugTransformers.txt"))
|
transformerDebug.getFileName(transformOptions, true, 0).contains("debugTransformers.txt"))
|
||||||
{
|
{
|
||||||
Map<String, Set<String>> explicitTransforms = debugExplicitTransforms();
|
debugActiveTransformersByTransformer();
|
||||||
debugActiveTransformersByTransformer(explicitTransforms);
|
debugActiveTransformersByMimetypes();
|
||||||
debugActiveTransformersByMimetypes(explicitTransforms);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates TransformerDebug that lists all the supported mimetype transformation for each transformer.
|
* Creates TransformerDebug that lists all the supported mimetype transformation for each transformer.
|
||||||
*/
|
*/
|
||||||
private void debugActiveTransformersByTransformer(Map<String, Set<String>> explicitTransforms)
|
private void debugActiveTransformersByTransformer()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -837,20 +836,8 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
|||||||
{
|
{
|
||||||
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(
|
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(
|
||||||
sourceMimetype, targetMimetype, options);
|
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,
|
transformerDebug.activeTransformer(++mimetypePairCount, transformer,
|
||||||
sourceMimetype, targetMimetype, maxSourceSizeKBytes, explicit, first);
|
sourceMimetype, targetMimetype, maxSourceSizeKBytes, first);
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -875,7 +862,7 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
|||||||
/**
|
/**
|
||||||
* Creates TransformerDebug that lists all available transformers for each mimetype combination.
|
* Creates TransformerDebug that lists all available transformers for each mimetype combination.
|
||||||
*/
|
*/
|
||||||
private void debugActiveTransformersByMimetypes(Map<String, Set<String>> explicitTransforms)
|
private void debugActiveTransformersByMimetypes()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -897,21 +884,8 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
|||||||
{
|
{
|
||||||
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(
|
long maxSourceSizeKBytes = transformer.getMaxSourceSizeKBytes(
|
||||||
sourceMimetype, targetMimetype, options);
|
sourceMimetype, targetMimetype, options);
|
||||||
|
transformerDebug.activeTransformer(sourceMimetype, targetMimetype,
|
||||||
// Is this an explicit transform, ignored because there are explicit transforms
|
transformerCount, transformer, maxSourceSizeKBytes, transformerCount++ == 0);
|
||||||
// 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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -927,43 +901,6 @@ public class ContentServiceImpl implements ContentService, ApplicationContextAwa
|
|||||||
transformerDebug.popMisc();
|
transformerDebug.popMisc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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}
|
* {@inheritDoc}
|
||||||
|
@@ -298,7 +298,7 @@ public abstract class AbstractContentTransformerLimits extends ContentTransforme
|
|||||||
{
|
{
|
||||||
String targetExt = getExtensionOrAny(target.getKey());
|
String targetExt = getExtensionOrAny(target.getKey());
|
||||||
TransformationOptionLimits limits = target.getValue();
|
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);
|
deprecatedLimitsSetter(mimetypeSuffix, limits);
|
||||||
}
|
}
|
||||||
|
@@ -237,7 +237,7 @@ public class ContentTransformerHelper implements BeanNameAware
|
|||||||
String targetMimetype = transformation.getTargetMimetype();
|
String targetMimetype = transformation.getTargetMimetype();
|
||||||
String sourceExt = getExtensionOrAny(sourceMimetype);
|
String sourceExt = getExtensionOrAny(sourceMimetype);
|
||||||
String targetExt = getExtensionOrAny(targetMimetype);
|
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
|
(value == null // same as: transformation instanceof ExplictTransformationDetails
|
||||||
? TransformerConfig.PRIORITY+"="+TransformerConfig.PRIORITY_EXPLICIT
|
? TransformerConfig.PRIORITY+"="+TransformerConfig.PRIORITY_EXPLICIT
|
||||||
: TransformerConfig.SUPPORTED+"="+value));
|
: 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
|
* 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.
|
* 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.";
|
static final String MIMETYPES_SEPARATOR = ".mimetypes.";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -104,6 +110,16 @@ public interface TransformerConfig
|
|||||||
*/
|
*/
|
||||||
static final String INITIAL_COUNT = ".count";
|
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
|
* 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.
|
* 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;
|
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
|
* Suffixes to property names used to define transformation limits
|
||||||
*/
|
*/
|
||||||
static final Collection<String> LIMIT_SUFFIXES = Arrays.asList(new String [] {
|
static final Collection<String> LIMIT_SUFFIXES = Arrays.asList(new String [] {
|
||||||
'.'+TransformationOptionLimits.OPT_MAX_SOURCE_SIZE_K_BYTES,
|
MAX_SOURCE_SIZE_K_BYTES,
|
||||||
'.'+TransformationOptionLimits.OPT_TIMEOUT_MS,
|
TIMEOUT_MS,
|
||||||
'.'+TransformationOptionLimits.OPT_MAX_PAGES,
|
MAX_PAGES,
|
||||||
'.'+TransformationOptionLimits.OPT_READ_LIMIT_K_BYTES,
|
READ_LIMIT_K_BYTES,
|
||||||
'.'+TransformationOptionLimits.OPT_READ_LIMIT_TIME_MS,
|
READ_LIMIT_TIME_MS,
|
||||||
'.'+TransformationOptionLimits.OPT_PAGE_LIMIT
|
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
|
* This file is part of Alfresco
|
||||||
*
|
*
|
||||||
@@ -34,9 +34,6 @@ import org.springframework.extensions.surf.util.AbstractLifecycleBean;
|
|||||||
*/
|
*/
|
||||||
public class TransformerConfigImpl extends AbstractLifecycleBean implements TransformerConfig
|
public class TransformerConfigImpl extends AbstractLifecycleBean implements TransformerConfig
|
||||||
{
|
{
|
||||||
/** The logger. */
|
|
||||||
private static Log logger = LogFactory.getLog(TransformerConfigImpl.class);
|
|
||||||
|
|
||||||
private MimetypeService mimetypeService;
|
private MimetypeService mimetypeService;
|
||||||
|
|
||||||
// Holds statistics about each transformer, sourceMimeType and targetMimetype combination.
|
// 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);
|
statistics= new TransformerConfigStatistics(this, mimetypeService);
|
||||||
limits = new TransformerConfigLimits(getSubsystem(), mimetypeService);
|
limits = new TransformerConfigLimits(getSubsystem(), mimetypeService);
|
||||||
supported = new TransformerConfigSupported(getSubsystem(), mimetypeService);
|
supported = new TransformerConfigSupported(getSubsystem(), mimetypeService);
|
||||||
priorities = new TransformerConfigProperty(getSubsystem(), mimetypeService, PRIORITY);
|
priorities = new TransformerConfigProperty(getSubsystem(), mimetypeService, PRIORITY, Integer.toString(PRIORITY_DEFAULT));
|
||||||
thresholdCounts = new TransformerConfigProperty(getSubsystem(), mimetypeService, THRESHOLD_COUNT);
|
thresholdCounts = new TransformerConfigProperty(getSubsystem(), mimetypeService, THRESHOLD_COUNT, "3");
|
||||||
errorTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, ERROR_TIME);
|
errorTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, ERROR_TIME, "120000");
|
||||||
initialAverageTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, INITIAL_TIME);
|
initialAverageTimes = new TransformerConfigProperty(getSubsystem(), mimetypeService, INITIAL_TIME, "0");
|
||||||
initialCounts = new TransformerConfigProperty(getSubsystem(), mimetypeService, INITIAL_COUNT);
|
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.CONTENT;
|
||||||
import static org.alfresco.repo.content.transform.TransformerConfig.DEFAULT_TRANSFORMER;
|
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.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.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -59,91 +60,73 @@ public class TransformerConfigLimits extends TransformerPropertyNameExtractor
|
|||||||
limits = new HashMap<String, DoubleMap<String, String, TransformationOptionLimits>>();
|
limits = new HashMap<String, DoubleMap<String, String, TransformationOptionLimits>>();
|
||||||
|
|
||||||
// Gets all the transformer, source and target combinations in properties that define limits.
|
// Gets all the transformer, source and target combinations in properties that define limits.
|
||||||
Set<Triple<String, String, String>> transformerNamesAndExt =
|
Collection<TransformerSourceTargetValue> transformerNamesAndExt =
|
||||||
getTransformerNamesAndExt(MIMETYPES_SEPARATOR, LIMIT_SUFFIXES, true, subsystem, mimetypeService);
|
getTransformerSourceTargetValues(LIMIT_SUFFIXES, true, subsystem, mimetypeService);
|
||||||
|
|
||||||
// Add the system wide default just in case it is not included, as we always need this one
|
// 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
|
// Populate the transformer limits
|
||||||
for (Triple<String, String, String> triple: transformerNamesAndExt)
|
for (TransformerSourceTargetValue property: transformerNamesAndExt)
|
||||||
{
|
{
|
||||||
String transformerName = triple.getFirst();
|
options = getOrCreateTransformerOptionLimits(property.transformerName,
|
||||||
String sourceExt = triple.getSecond();
|
property.sourceMimetype, property.targetMimetype);
|
||||||
String targetExt = triple.getThird();
|
setTransformationOptionsFromProperties(options, property.transformerName, property.sourceExt, property.targetExt,
|
||||||
String sourceMimetype = ANY.equals(sourceExt) ? ANY : mimetypeService.getMimetype(sourceExt);
|
property.value, property.suffix);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the TransformationOptionLimits for the transformer and mimetype combination,
|
||||||
|
* creating and adding one if not already included.
|
||||||
|
*/
|
||||||
|
private TransformationOptionLimits getOrCreateTransformerOptionLimits(String transformerName,
|
||||||
|
String sourceMimetype, String targetMimetype)
|
||||||
|
{
|
||||||
|
DoubleMap<String, String, TransformationOptionLimits> mimetypeLimits;
|
||||||
|
mimetypeLimits = limits.get(transformerName);
|
||||||
|
if (mimetypeLimits == null)
|
||||||
|
{
|
||||||
|
mimetypeLimits = new DoubleMap<String, String, TransformationOptionLimits>(ANY, ANY);
|
||||||
|
limits.put(transformerName, mimetypeLimits);
|
||||||
|
}
|
||||||
|
|
||||||
|
TransformationOptionLimits options = mimetypeLimits.get(sourceMimetype, targetMimetype);
|
||||||
|
if (options == null)
|
||||||
|
{
|
||||||
|
options = new TransformationOptionLimits();
|
||||||
|
mimetypeLimits.put(sourceMimetype, targetMimetype, options);
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
private void setTransformationOptionsFromProperties(TransformationOptionLimits options,
|
||||||
* Returns a TransformationOptionLimits object using property values.
|
String transformerName, String sourceExt, String targetExt, String value, String suffix)
|
||||||
* @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
|
|
||||||
*/
|
|
||||||
private TransformationOptionLimits newTransformationOptionLimits(String transformerName,
|
|
||||||
String sourceExt, String targetExt, ChildApplicationContextFactory subsystem)
|
|
||||||
{
|
{
|
||||||
TransformationOptionLimits limits = new TransformationOptionLimits();
|
long l = Long.parseLong(value);
|
||||||
|
if (suffix == TransformerConfig.MAX_SOURCE_SIZE_K_BYTES)
|
||||||
// The overall values can be defined in two ways
|
|
||||||
if (ANY.equals(sourceExt) && ANY.equals(targetExt))
|
|
||||||
{
|
{
|
||||||
setTransformationOptionsFromProperties(limits, transformerName, null, null, subsystem);
|
options.setMaxSourceSizeKBytes(l);
|
||||||
}
|
}
|
||||||
setTransformationOptionsFromProperties(limits, transformerName, sourceExt, targetExt, subsystem);
|
else if (suffix == TransformerConfig.TIMEOUT_MS)
|
||||||
|
|
||||||
return limits;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setTransformationOptionsFromProperties(TransformationOptionLimits limits,
|
|
||||||
String transformerName, String sourceExt, String targetExt, ChildApplicationContextFactory subsystem)
|
|
||||||
{
|
|
||||||
String propertyNameRoot = CONTENT+transformerName+
|
|
||||||
(sourceExt == null ? "" : MIMETYPES_SEPARATOR+sourceExt+'.'+targetExt);
|
|
||||||
int i = 0;
|
|
||||||
for (String suffix: LIMIT_SUFFIXES)
|
|
||||||
{
|
{
|
||||||
String value = subsystem.getProperty(propertyNameRoot+suffix);
|
options.setTimeoutMs(l);
|
||||||
if (value != null)
|
}
|
||||||
{
|
else if (suffix == TransformerConfig.MAX_PAGES)
|
||||||
long l = Long.parseLong(value);
|
{
|
||||||
switch (i)
|
options.setMaxPages((int)l);
|
||||||
{
|
}
|
||||||
case 0:
|
else if (suffix == TransformerConfig.READ_LIMIT_K_BYTES)
|
||||||
limits.setMaxSourceSizeKBytes(l);
|
{
|
||||||
break;
|
options.setReadLimitKBytes(l);
|
||||||
case 1:
|
}
|
||||||
limits.setTimeoutMs(l);
|
else if (suffix == TransformerConfig.READ_LIMIT_TIME_MS)
|
||||||
break;
|
{
|
||||||
case 2:
|
options.setReadLimitTimeMs(l);
|
||||||
limits.setMaxPages((int)l);
|
}
|
||||||
break;
|
else // if (suffix == TransformerConfig.PAGE_LIMIT)
|
||||||
case 3:
|
{
|
||||||
limits.setReadLimitKBytes(l);
|
options.setPageLimit((int)l);
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
limits.setReadLimitTimeMs(l);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
limits.setPageLimit((int)l);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -19,18 +19,15 @@
|
|||||||
package org.alfresco.repo.content.transform;
|
package org.alfresco.repo.content.transform;
|
||||||
|
|
||||||
import static org.alfresco.repo.content.transform.TransformerConfig.ANY;
|
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.DEFAULT_TRANSFORMER;
|
||||||
import static org.alfresco.repo.content.transform.TransformerConfig.MIMETYPES_SEPARATOR;
|
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
|
import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
|
||||||
import org.alfresco.service.cmr.repository.MimetypeService;
|
import org.alfresco.service.cmr.repository.MimetypeService;
|
||||||
import org.alfresco.util.Triple;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides access to single transformer configuration property depending on the
|
* 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;
|
private Map<String, DoubleMap<String, String, String>> values;
|
||||||
|
|
||||||
public TransformerConfigProperty(ChildApplicationContextFactory subsystem,
|
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.
|
* 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>>();
|
values = new HashMap<String, DoubleMap<String, String, String>>();
|
||||||
|
|
||||||
// Gets all the transformer, source and target combinations in properties that define
|
// Gets all the transformer, source and target combinations in properties that define
|
||||||
// this value.
|
// this value.
|
||||||
Set<Triple<String, String, String>> transformerNamesAndMimetypes =
|
Collection<TransformerSourceTargetValue> transformerNamesAndMimetypes =
|
||||||
getTransformerNamesAndExt(MIMETYPES_SEPARATOR, Collections.singletonList(propertySuffix), true, subsystem, mimetypeService);
|
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
|
// Add the system wide default if it does not exist, as we always need this one
|
||||||
transformerNamesAndMimetypes.add(new Triple<String,String,String>(DEFAULT_TRANSFORMER, ANY, ANY));
|
TransformerSourceTargetValue transformerSourceTargetValue =
|
||||||
|
new TransformerSourceTargetValue(DEFAULT_TRANSFORMER, ANY, ANY, defaultValue, suffix, mimetypeService);
|
||||||
|
if (transformerNamesAndMimetypes.contains(transformerSourceTargetValue.key()))
|
||||||
|
{
|
||||||
|
transformerNamesAndMimetypes.add(transformerSourceTargetValue);
|
||||||
|
}
|
||||||
|
|
||||||
// Populate the transformer values
|
// Populate the transformer values
|
||||||
for (Triple<String, String, String> triple: transformerNamesAndMimetypes)
|
for (TransformerSourceTargetValue property: transformerNamesAndMimetypes)
|
||||||
{
|
{
|
||||||
String transformerName = triple.getFirst();
|
DoubleMap<String, String, String> mimetypeLimits = this.values.get(property.transformerName);
|
||||||
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);
|
|
||||||
if (mimetypeLimits == null)
|
if (mimetypeLimits == null)
|
||||||
{
|
{
|
||||||
mimetypeLimits = new DoubleMap<String, String, String>(ANY, ANY);
|
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,
|
private String getString(ContentTransformer transformer, String sourceMimetype,
|
||||||
String targetMimetype)
|
String targetMimetype)
|
||||||
{
|
{
|
||||||
|
@@ -19,21 +19,16 @@
|
|||||||
package org.alfresco.repo.content.transform;
|
package org.alfresco.repo.content.transform;
|
||||||
|
|
||||||
import static org.alfresco.repo.content.transform.TransformerConfig.ANY;
|
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 static org.alfresco.repo.content.transform.TransformerConfig.SUPPORTED;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
|
import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
|
||||||
import org.alfresco.service.cmr.repository.MimetypeService;
|
import org.alfresco.service.cmr.repository.MimetypeService;
|
||||||
import org.alfresco.service.cmr.repository.TransformationOptions;
|
import org.alfresco.service.cmr.repository.TransformationOptions;
|
||||||
import org.alfresco.util.Triple;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides access to the lists of supported and unsupported mimetype transformations
|
* 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
|
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)
|
// Holds configured (entries only exist if configured rather than for all possible combinations)
|
||||||
// of supported and unsupported mimetypes transformations for a transformer.
|
// of supported and unsupported mimetypes transformations for a transformer.
|
||||||
// SourceMimetype and targetMimetype may be 'ANY' values to act as wild cards.
|
// SourceMimetype and targetMimetype may be 'ANY' values to act as wild cards.
|
||||||
@@ -58,69 +48,6 @@ public class TransformerConfigSupported extends TransformerPropertyNameExtractor
|
|||||||
setSupported(subsystem, mimetypeService);
|
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.
|
* Sets the supported/unsupported mimetype transformations created from system properties.
|
||||||
*/
|
*/
|
||||||
@@ -129,63 +56,24 @@ public class TransformerConfigSupported extends TransformerPropertyNameExtractor
|
|||||||
supported = new HashMap<String, SupportedAndUnsupportedTransformations>();
|
supported = new HashMap<String, SupportedAndUnsupportedTransformations>();
|
||||||
|
|
||||||
// Gets all the supported and unsupported transformer, source and target combinations
|
// Gets all the supported and unsupported transformer, source and target combinations
|
||||||
Set<Triple<String, String, String>> transformerNamesAndMimetypes =
|
Collection<TransformerSourceTargetValue> transformerNamesAndMimetypes =
|
||||||
getTransformerNamesAndExt(MIMETYPES_SEPARATOR, Collections.singletonList(SUPPORTED), false, subsystem, mimetypeService);
|
getTransformerSourceTargetValues(Collections.singletonList(SUPPORTED),
|
||||||
|
false, subsystem, mimetypeService);
|
||||||
|
|
||||||
// Populate the transformer values
|
// Populate the transformer values
|
||||||
for (Triple<String, String, String> triple: transformerNamesAndMimetypes)
|
for (TransformerSourceTargetValue property: transformerNamesAndMimetypes)
|
||||||
{
|
{
|
||||||
String transformerName = triple.getFirst();
|
SupportedAndUnsupportedTransformations supportedBytransformer = this.supported.get(property.transformerName);
|
||||||
String sourceExt = triple.getSecond();
|
|
||||||
String targetExt = triple.getThird();
|
|
||||||
|
|
||||||
SupportedAndUnsupportedTransformations supportedBytransformer = this.supported.get(transformerName);
|
|
||||||
|
|
||||||
if (supportedBytransformer == null)
|
if (supportedBytransformer == null)
|
||||||
{
|
{
|
||||||
supportedBytransformer = new SupportedAndUnsupportedTransformations();
|
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));
|
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
boolean supported = property.value == null || property.value.equalsIgnoreCase("true");
|
||||||
|
supportedBytransformer.put(property.sourceMimetype, property.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");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* See {@link TransformerConfig#isSupportedTransformation(ContentTransformer, String, String, TransformationOptions)}.
|
* See {@link TransformerConfig#isSupportedTransformation(ContentTransformer, String, String, TransformationOptions)}.
|
||||||
*/
|
*/
|
||||||
|
@@ -377,8 +377,7 @@ public class TransformerDebug
|
|||||||
long maxSourceSizeKBytes = trans.getMaxSourceSizeKBytes(frame.sourceMimetype, frame.targetMimetype, frame.options);
|
long maxSourceSizeKBytes = trans.getMaxSourceSizeKBytes(frame.sourceMimetype, frame.targetMimetype, frame.options);
|
||||||
String size = maxSourceSizeKBytes > 0 ? "< "+fileSize(maxSourceSizeKBytes*1024) : "";
|
String size = maxSourceSizeKBytes > 0 ? "< "+fileSize(maxSourceSizeKBytes*1024) : "";
|
||||||
int padSize = 10 - size.length();
|
int padSize = 10 - size.length();
|
||||||
String priority = Integer.toString(transformerConfig.getPriority(trans, frame.sourceMimetype, frame.targetMimetype));
|
String priority = gePriority(trans, frame.sourceMimetype, frame.targetMimetype);
|
||||||
priority = spaces(2-priority.length())+priority;
|
|
||||||
log((c == 'a' ? "**" : " ") + (c++) + ") " + priority + ' ' + name + spaces(padName) +
|
log((c == 'a' ? "**" : " ") + (c++) + ") " + priority + ' ' + name + spaces(padName) +
|
||||||
size + spaces(padSize) + ms(trans.getTransformationTime(frame.sourceMimetype, frame.targetMimetype)));
|
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)
|
public void inactiveTransformer(ContentTransformer transformer)
|
||||||
{
|
{
|
||||||
log(getName(transformer)+' '+ms(transformer.getTransformationTime(null, null))+" INACTIVE");
|
log(getName(transformer)+' '+ms(transformer.getTransformationTime(null, null))+" INACTIVE");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void activeTransformer(int mimetypePairCount, ContentTransformer transformer, String sourceMimetype,
|
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)
|
if (firstMimetypePair)
|
||||||
{
|
{
|
||||||
log(getName(transformer)+' '+ms(transformer.getTransformationTime(sourceMimetype, targetMimetype)));
|
log(getName(transformer)+' '+ms(transformer.getTransformationTime(sourceMimetype, targetMimetype)));
|
||||||
}
|
}
|
||||||
String i = Integer.toString(mimetypePairCount);
|
String i = Integer.toString(mimetypePairCount);
|
||||||
|
String priority = gePriority(transformer, sourceMimetype, targetMimetype);
|
||||||
log(spaces(5-i.length())+mimetypePairCount+") "+getMimetypeExt(sourceMimetype)+getMimetypeExt(targetMimetype)+
|
log(spaces(5-i.length())+mimetypePairCount+") "+getMimetypeExt(sourceMimetype)+getMimetypeExt(targetMimetype)+
|
||||||
|
priority +
|
||||||
' '+fileSize((maxSourceSizeKBytes > 0) ? maxSourceSizeKBytes*1024 : maxSourceSizeKBytes)+
|
' '+fileSize((maxSourceSizeKBytes > 0) ? maxSourceSizeKBytes*1024 : maxSourceSizeKBytes)+
|
||||||
(maxSourceSizeKBytes == 0 || (explicit != null && !explicit) ? " disabled" : "")+
|
(maxSourceSizeKBytes == 0 ? " disabled" : ""));
|
||||||
(explicit == null ? "" : explicit ? " EXPLICIT" : " not explicit"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void activeTransformer(String sourceMimetype, String targetMimetype,
|
public void activeTransformer(String sourceMimetype, String targetMimetype,
|
||||||
int transformerCount, ContentTransformer transformer, long maxSourceSizeKBytes,
|
int transformerCount, ContentTransformer transformer, long maxSourceSizeKBytes,
|
||||||
Boolean explicit, boolean firstTransformer)
|
boolean firstTransformer)
|
||||||
{
|
{
|
||||||
String mimetypes = firstTransformer
|
String mimetypes = firstTransformer
|
||||||
? getMimetypeExt(sourceMimetype)+getMimetypeExt(targetMimetype)
|
? getMimetypeExt(sourceMimetype)+getMimetypeExt(targetMimetype)
|
||||||
: spaces(10);
|
: spaces(10);
|
||||||
char c = (char)('a'+transformerCount);
|
char c = (char)('a'+transformerCount);
|
||||||
|
String priority = gePriority(transformer, sourceMimetype, targetMimetype);
|
||||||
log(mimetypes+
|
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)+
|
' '+fileSize((maxSourceSizeKBytes > 0) ? maxSourceSizeKBytes*1024 : maxSourceSizeKBytes)+
|
||||||
(maxSourceSizeKBytes == 0 || (explicit != null && !explicit) ? " disabled" : "")+
|
(maxSourceSizeKBytes == 0 ? " disabled" : ""));
|
||||||
(explicit == null ? "" : explicit ? " EXPLICIT" : " not explicit"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getLongestTransformerNameLength(List<ContentTransformer> transformers,
|
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.CONTENT;
|
||||||
import static org.alfresco.repo.content.transform.TransformerConfig.PREFIX;
|
import static org.alfresco.repo.content.transform.TransformerConfig.PREFIX;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashMap;
|
||||||
import java.util.Set;
|
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.repo.management.subsystems.ChildApplicationContextFactory;
|
||||||
import org.alfresco.service.cmr.repository.MimetypeService;
|
import org.alfresco.service.cmr.repository.MimetypeService;
|
||||||
@@ -37,11 +41,18 @@ import org.alfresco.util.Triple;
|
|||||||
*/
|
*/
|
||||||
public abstract class TransformerPropertyNameExtractor
|
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
|
* Returns a set of transformer name, source extension, target extension and value
|
||||||
* from property names that defined transformation limits.
|
* from property names that defined transformation limits. When the separator indicates
|
||||||
* @param separator after the transformer name and the source mimetype extension.
|
* it is followed by a regular expression that matches multiple mimetypes, more than one
|
||||||
* Must start and end in a '.'.
|
* 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.
|
* @param suffixes possible endings to the property names after the target mimetype extension.
|
||||||
* Must start with a '.' if there is a suffix.
|
* Must start with a '.' if there is a suffix.
|
||||||
* @param includeSummary if true will also look for property names without the separator,
|
* @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 subsystem that provides the properties
|
||||||
* @param mimetypeService
|
* @param mimetypeService
|
||||||
*/
|
*/
|
||||||
protected Set<Triple<String,String,String>> getTransformerNamesAndExt(String separator, Collection<String> suffixes, boolean includeSummary,
|
protected Collection<TransformerSourceTargetValue> getTransformerSourceTargetValues(Collection<String> suffixes,
|
||||||
ChildApplicationContextFactory subsystem, MimetypeService mimetypeService)
|
boolean includeSummary, ChildApplicationContextFactory subsystem, MimetypeService mimetypeService)
|
||||||
{
|
{
|
||||||
Set<Triple<String,String,String>> transformerNamesAndExtensions =
|
Map<Triple<String, String, String>, TransformerSourceTargetValue> TransformerSourceTargetValues =
|
||||||
new HashSet<Triple<String,String,String>>();
|
new HashMap<Triple<String, String, String>, TransformerSourceTargetValue>();
|
||||||
|
|
||||||
for (String propertyName: subsystem.getPropertyNames())
|
for (String propertyName: subsystem.getPropertyNames())
|
||||||
{
|
{
|
||||||
if (propertyName.startsWith(PREFIX))
|
if (propertyName.startsWith(PREFIX))
|
||||||
{
|
{
|
||||||
|
suffixesLoop:
|
||||||
for (String suffix: suffixes)
|
for (String suffix: suffixes)
|
||||||
{
|
{
|
||||||
if (propertyName.endsWith(suffix))
|
if (propertyName.endsWith(suffix))
|
||||||
{
|
{
|
||||||
|
String value = subsystem.getProperty(propertyName);
|
||||||
String name = propertyName.substring(CONTENT.length(), propertyName.length()-suffix.length());
|
String name = propertyName.substring(CONTENT.length(), propertyName.length()-suffix.length());
|
||||||
int i = name.lastIndexOf(separator);
|
boolean separatorMatch = false;
|
||||||
if (i != -1)
|
for (String separator: SEPARATORS)
|
||||||
{
|
{
|
||||||
String[] ext = name.substring(i+separator.length()).split("\\.");
|
int i = name.lastIndexOf(separator);
|
||||||
if (ext.length == 2)
|
if (i != -1)
|
||||||
{
|
{
|
||||||
name = name.substring(0, i);
|
separatorMatch = true;
|
||||||
transformerNamesAndExtensions.add(
|
String extensions = name.substring(i+separator.length());
|
||||||
new Triple<String,String,String>(name, ext[0], ext[1]));
|
String[] ext = splitExt(extensions);
|
||||||
break;
|
if (ext.length == 2)
|
||||||
|
{
|
||||||
|
name = name.substring(0, i);
|
||||||
|
if (separator == TransformerConfig.EXTENSIONS_SEPARATOR)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (includeSummary)
|
|
||||||
|
if (!separatorMatch && includeSummary)
|
||||||
{
|
{
|
||||||
transformerNamesAndExtensions.add(new Triple<String,String,String>(name, ANY, ANY));
|
addTransformerSourceTargetValue(TransformerSourceTargetValues, false, name, ANY, ANY,
|
||||||
break;
|
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