From 4d60018f0cdcb5ccb46e7ba70f94a26334df5b02 Mon Sep 17 00:00:00 2001 From: Neil McErlean Date: Tue, 20 Apr 2010 12:54:54 +0000 Subject: [PATCH] ALF-2220 fix. Rendition Definitions should only be persisted on startup if they have not already been persisted. Also removed an unnecessary TODO. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19914 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rendition/RenditionDefinitionImpl.java | 2 +- .../repo/thumbnail/ThumbnailRegistry.java | 26 +++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/source/java/org/alfresco/repo/rendition/RenditionDefinitionImpl.java b/source/java/org/alfresco/repo/rendition/RenditionDefinitionImpl.java index 9b22a43839..bab894e564 100644 --- a/source/java/org/alfresco/repo/rendition/RenditionDefinitionImpl.java +++ b/source/java/org/alfresco/repo/rendition/RenditionDefinitionImpl.java @@ -37,7 +37,7 @@ public class RenditionDefinitionImpl extends ActionImpl implements RenditionDefi * Serial version UID */ private static final long serialVersionUID = 4336392868488634875L; - //TODO rename to renditionDefinitionName + protected static final String RENDITION_DEFINITION_NAME = "renderingActionName"; public NodeRef renditionParent; diff --git a/source/java/org/alfresco/repo/thumbnail/ThumbnailRegistry.java b/source/java/org/alfresco/repo/thumbnail/ThumbnailRegistry.java index 556eeaef73..5899c6cb5c 100644 --- a/source/java/org/alfresco/repo/thumbnail/ThumbnailRegistry.java +++ b/source/java/org/alfresco/repo/thumbnail/ThumbnailRegistry.java @@ -29,6 +29,8 @@ import org.alfresco.service.cmr.rendition.RenditionDefinition; import org.alfresco.service.cmr.rendition.RenditionService; import org.alfresco.service.cmr.repository.ContentService; import org.alfresco.service.cmr.thumbnail.ThumbnailException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -44,7 +46,10 @@ import org.springframework.extensions.surf.util.AbstractLifecycleBean; * @author Neil McErlean */ public class ThumbnailRegistry implements ApplicationContextAware, ApplicationListener -{ +{ + /** Logger */ + private static Log logger = LogFactory.getLog(ThumbnailRegistry.class); + /** Content service */ private ContentService contentService; @@ -127,7 +132,24 @@ public class ThumbnailRegistry implements ApplicationContextAware, ApplicationLi // for the ThumbnailParentAssociationDetails object. Hence the null RenditionDefinition renditionDef = thumbnailRenditionConvertor.convert(thumbnailDefinition, null); - renditionService.saveRenditionDefinition(renditionDef); + // Thumbnail definitions are saved into the repository as actions + // but only if they have not already been saved. + boolean alreadyPersisted = renditionService.loadRenditionDefinition(renditionDef.getRenditionName()) != null; + if (!alreadyPersisted) + { + if (logger.isDebugEnabled()) + { + logger.debug("Init'ing and saving thumbnail definition " + thumbnailDefName); + } + renditionService.saveRenditionDefinition(renditionDef); + } + else + { + if (logger.isDebugEnabled()) + { + logger.debug("Init'ing thumbnail definition " + thumbnailDefName); + } + } } return null;