Merged BRANCHES/DEV/V4.1-BUG-FIX to HEAD:

42476: ALF-5051: Define ThumbnailDefinition Beans Outside of ThumbnailRegistry Bean
        - Created defaultImageResizeOptions abstract bean for common properties
        - Changed system.thumbnail.definition.doclib.* to system.thumbnail.definition.default.* in repository.properties
        - Created defaultImageTransformationOptions abstract bean for common properties defined by system.thumbnail.definition.default.* in repository.properties
        - Created thumbnail definition beans with ids outside of the thumbnailRegistry with defaultImageTransformationOptions and defaultImageResizeOptions
        - Added thumbnailRegistry property to ThumbnailDefinition and register method which calls thumbnailRegistry.addThumbnailDefinition(this)
        - Added baseThumbnailDefinition bean with init-method="register" but did not yet make it the parent of the thumbnail definitions for backwards compatibility
        - Changed thumbnailRegistry thumbnailDefinitions list to reference thumbnail definition beans from above, also for backwards compatibility


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@42486 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ray Gauss
2012-10-10 16:42:31 +00:00
parent 6e85f8426a
commit f78f18fdb7
3 changed files with 206 additions and 137 deletions

View File

@@ -554,15 +554,14 @@ swf.languagedir=.
# Thumbnail Service
system.thumbnail.generate=true
# Generate doclib icons
# When creating a doclib icon, only use the first pageLimit pages (currently only understood by pdfbox
# TextToPdfContentTransformer)
system.thumbnail.definition.doclib.timeoutMs=-1
system.thumbnail.definition.doclib.readLimitTimeMs=-1
system.thumbnail.definition.doclib.maxSourceSizeKBytes=-1
system.thumbnail.definition.doclib.readLimitKBytes=-1
system.thumbnail.definition.doclib.pageLimit=1
system.thumbnail.definition.doclib.maxPages=-1
# Default thumbnail limits
# When creating thumbnails, only use the first pageLimit pages
system.thumbnail.definition.default.timeoutMs=-1
system.thumbnail.definition.default.readLimitTimeMs=-1
system.thumbnail.definition.default.maxSourceSizeKBytes=-1
system.thumbnail.definition.default.readLimitKBytes=-1
system.thumbnail.definition.default.pageLimit=1
system.thumbnail.definition.default.maxPages=-1
# Max mimetype sizes to create thumbnail icons
system.thumbnail.mimetype.maxSourceSizeKBytes.pdf=-1

View File

@@ -53,26 +53,44 @@
<property name="renditionService" ref="renditionService" />
</bean>
<!-- Thumbnail Register -->
<bean id="thumbnailRegistry" class="org.alfresco.repo.thumbnail.ThumbnailRegistry">
<property name="contentService" ref="ContentService"/>
<property name="renditionService" ref="renditionService" />
<property name="transactionService" ref="TransactionService" />
<property name="tenantAdminService" ref="tenantAdminService" />
<property name="thumbnailDefinitions">
<list>
<bean id="baseThumbnailDefinition"
class="org.alfresco.repo.thumbnail.ThumbnailDefinition"
abstract="true"
init-method="register">
<property name="thumbnailRegistry">
<ref bean="thumbnailRegistry" />
</property>
</bean>
<bean id="defaultImageResizeOptions"
class="org.alfresco.repo.content.transform.magick.ImageResizeOptions"
abstract="true">
<property name="maintainAspectRatio" value="true"/>
<property name="resizeToThumbnail" value="true" />
</bean>
<bean id="defaultImageTransformationOptions"
class="org.alfresco.repo.content.transform.magick.ImageTransformationOptions"
abstract="true">
<property name="timeoutMs" value="${system.thumbnail.definition.default.timeoutMs}" />
<property name="readLimitTimeMs" value="${system.thumbnail.definition.default.readLimitTimeMs}" />
<property name="maxSourceSizeKBytes" value="${system.thumbnail.definition.default.maxSourceSizeKBytes}" />
<property name="readLimitKBytes" value="${system.thumbnail.definition.default.readLimitKBytes}" />
<property name="pageLimit" value="${system.thumbnail.definition.default.pageLimit}" />
<property name="maxPages" value="${system.thumbnail.definition.default.maxPages}" />
</bean>
<!-- Small image thumbnail options -->
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<!-- Note that this will auto-register with parent="baseThumbnailDefinition" in the future -->
<bean id="thumbnailDefinitionMedium" class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="medium" />
<property name="mimetype" value="image/jpeg"/>
<property name="transformationOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageTransformationOptions">
<bean parent="defaultImageTransformationOptions">
<property name="resizeOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageResizeOptions">
<bean parent="defaultImageResizeOptions">
<property name="width" value="100"/>
<property name="height" value="100"/>
<property name="maintainAspectRatio" value="true"/>
<property name="resizeToThumbnail" value="true" />
</bean>
</property>
</bean>
@@ -83,26 +101,19 @@
</bean>
<!-- Slingshot Document Library image thumbnail options -->
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<!-- Note that this will auto-register with parent="baseThumbnailDefinition" in the future -->
<bean id="thumbnailDefinitionDoclib" class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="doclib" />
<property name="mimetype" value="image/png"/>
<property name="transformationOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageTransformationOptions">
<bean parent="defaultImageTransformationOptions">
<property name="resizeOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageResizeOptions">
<bean parent="defaultImageResizeOptions">
<property name="width" value="100"/>
<property name="height" value="100"/>
<property name="maintainAspectRatio" value="true"/>
<property name="resizeToThumbnail" value="true" />
<property name="allowEnlargement" value="false" />
</bean>
</property>
<property name="timeoutMs" value="${system.thumbnail.definition.doclib.timeoutMs}" />
<property name="readLimitTimeMs" value="${system.thumbnail.definition.doclib.readLimitTimeMs}" />
<property name="maxSourceSizeKBytes" value="${system.thumbnail.definition.doclib.maxSourceSizeKBytes}" />
<property name="readLimitKBytes" value="${system.thumbnail.definition.doclib.readLimitKBytes}" />
<property name="pageLimit" value="${system.thumbnail.definition.doclib.pageLimit}" />
<property name="maxPages" value="${system.thumbnail.definition.doclib.maxPages}" />
</bean>
</property>
<property name="placeHolderResourcePath" value="alfresco/thumbnail/thumbnail_placeholder_doclib.png" />
@@ -111,8 +122,72 @@
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- Image preview thumbnail options -->
<!-- Note that this will auto-register with parent="baseThumbnailDefinition" in the future -->
<bean id="thumbnailDefinitionImgpreview" class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="imgpreview" />
<property name="mimetype" value="image/png"/>
<property name="transformationOptions">
<bean parent="defaultImageTransformationOptions">
<property name="resizeOptions">
<bean parent="defaultImageResizeOptions">
<property name="width" value="960"/>
<property name="height" value="960"/>
<property name="allowEnlargement" value="false" />
</bean>
</property>
</bean>
</property>
<property name="placeHolderResourcePath" value="alfresco/thumbnail/thumbnail_placeholder_imgpreview.png" />
<property name="runAs" value="System"/>
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- User avatar 64x64 image thumbnail options -->
<!-- Note that this will auto-register with parent="baseThumbnailDefinition" in the future -->
<bean id="thumbnailDefinitionAvatar" class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="avatar" />
<property name="mimetype" value="image/png"/>
<property name="transformationOptions">
<bean parent="defaultImageTransformationOptions">
<property name="resizeOptions">
<bean parent="defaultImageResizeOptions">
<property name="width" value="64"/>
<property name="height" value="64"/>
<property name="allowEnlargement" value="false" />
</bean>
</property>
</bean>
</property>
<property name="placeHolderResourcePath" value="alfresco/thumbnail/thumbnail_placeholder_avatar.png" />
<property name="runAs" value="System"/>
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- User avatar 32x32 image thumbnail options -->
<!-- Note that this will auto-register with parent="baseThumbnailDefinition" in the future -->
<bean id="thumbnailDefinitionAvatar32" class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="avatar32" />
<property name="mimetype" value="image/png"/>
<property name="transformationOptions">
<bean parent="defaultImageTransformationOptions">
<property name="resizeOptions">
<bean parent="defaultImageResizeOptions">
<property name="width" value="32"/>
<property name="height" value="32"/>
<property name="allowEnlargement" value="false" />
</bean>
</property>
</bean>
</property>
<property name="placeHolderResourcePath" value="alfresco/thumbnail/thumbnail_placeholder_avatar32.png" />
<property name="runAs" value="System"/>
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- Web Preview thumbnail options -->
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<!-- Note that this will auto-register with parent="baseThumbnailDefinition" in the future -->
<bean id="thumbnailDefinitionWebpreview" class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="webpreview" />
<property name="mimetype" value="application/x-shockwave-flash"/>
<property name="transformationOptions">
@@ -124,70 +199,20 @@
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- Image preview thumbnail options -->
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="imgpreview" />
<property name="mimetype" value="image/png"/>
<property name="transformationOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageTransformationOptions">
<property name="resizeOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageResizeOptions">
<property name="width" value="960"/>
<property name="height" value="960"/>
<property name="maintainAspectRatio" value="true"/>
<property name="resizeToThumbnail" value="true" />
<property name="allowEnlargement" value="false" />
</bean>
</property>
</bean>
</property>
<property name="placeHolderResourcePath" value="alfresco/thumbnail/thumbnail_placeholder_imgpreview.png" />
<property name="runAs" value="System"/>
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- User avatar 64x64 image thumbnail options -->
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="avatar" />
<property name="mimetype" value="image/png"/>
<property name="transformationOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageTransformationOptions">
<property name="resizeOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageResizeOptions">
<property name="width" value="64"/>
<property name="height" value="64"/>
<property name="maintainAspectRatio" value="true"/>
<property name="resizeToThumbnail" value="true" />
</bean>
</property>
</bean>
</property>
<property name="placeHolderResourcePath" value="alfresco/thumbnail/thumbnail_placeholder_avatar.png" />
<property name="runAs" value="System"/>
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- User avatar 32x32 image thumbnail options -->
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
<property name="name" value="avatar32" />
<property name="mimetype" value="image/png"/>
<property name="transformationOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageTransformationOptions">
<property name="resizeOptions">
<bean class="org.alfresco.repo.content.transform.magick.ImageResizeOptions">
<property name="width" value="32"/>
<property name="height" value="32"/>
<property name="maintainAspectRatio" value="true"/>
<property name="resizeToThumbnail" value="true" />
</bean>
</property>
</bean>
</property>
<property name="placeHolderResourcePath" value="alfresco/thumbnail/thumbnail_placeholder_avatar32.png" />
<property name="runAs" value="System"/>
<property name="failureHandlingOptions" ref="standardFailureOptions"/>
</bean>
<!-- Thumbnail Register -->
<bean id="thumbnailRegistry" class="org.alfresco.repo.thumbnail.ThumbnailRegistry">
<property name="contentService" ref="ContentService"/>
<property name="renditionService" ref="renditionService" />
<property name="transactionService" ref="TransactionService" />
<property name="tenantAdminService" ref="tenantAdminService" />
<property name="thumbnailDefinitions">
<list>
<ref bean="thumbnailDefinitionMedium" />
<ref bean="thumbnailDefinitionDoclib" />
<ref bean="thumbnailDefinitionImgpreview" />
<ref bean="thumbnailDefinitionAvatar" />
<ref bean="thumbnailDefinitionAvatar32" />
<ref bean="thumbnailDefinitionWebpreview" />
</list>
</property>
<property name="thumbnailRenditionConvertor" ref="thumbnailRenditionConvertor" />

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
* Copyright (C) 2005-2012 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -18,6 +18,9 @@
*/
package org.alfresco.repo.thumbnail;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.alfresco.service.cmr.repository.TransformationOptions;
/**
@@ -27,6 +30,9 @@ import org.alfresco.service.cmr.repository.TransformationOptions;
*/
public class ThumbnailDefinition
{
private static final Log logger = LogFactory.getLog(ThumbnailDefinition.class);
/** Name of the thumbnail */
private String name;
@@ -50,6 +56,9 @@ public class ThumbnailDefinition
/** Username to run the thumbnailrendition as */
private String runAs;
/** The thumbnail registry */
private ThumbnailRegistry thumbnailRegistry;
/**
* Default constructor
*/
@@ -225,4 +234,40 @@ public class ThumbnailDefinition
{
return mimeAwarePlaceHolderResourcePath;
}
/**
* Gets the thumbnail registry
*
* @return the thumbnail registry
*/
public ThumbnailRegistry getThumbnailRegistry()
{
return thumbnailRegistry;
}
/**
* Sets the thumbnail registry
*
* @param thumbnailRegistry
*/
public void setThumbnailRegistry(ThumbnailRegistry thumbnailRegistry)
{
this.thumbnailRegistry = thumbnailRegistry;
}
/**
* Registers the thumbnail definition with the thumbnail registry.
*
* @see #setThumbnailRegistry(ThumbnailRegistry)
*/
public void register()
{
if (thumbnailRegistry == null)
{
logger.warn("Property 'thumbnailRegistry' has not been set. Ignoring auto-registration: \n" +
" extracter: " + this);
return;
}
thumbnailRegistry.addThumbnailDefinition(this);
}
}