Class ContentServiceImpl

  • All Implemented Interfaces:
    ContentService, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware
    Direct Known Subclasses:
    RoutingContentService

    public class ContentServiceImpl
    extends java.lang.Object
    implements ContentService, org.springframework.context.ApplicationContextAware
    Service implementation acting as a level of indirection between the client and the underlying content store.

    Note: This class was formerly the RoutingContentService but the 'routing' functionality has been pushed into the store implementations.

    Since:
    3.2
    Author:
    Derek Hulley
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      java.util.List<ContentTransformer> getActiveTransformers​(java.lang.String sourceMimetype, long sourceSize, java.lang.String targetMimetype, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      java.util.List<ContentTransformer> getActiveTransformers​(java.lang.String sourceMimetype, java.lang.String targetMimetype, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      ContentTransformer getImageTransformer()
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      long getMaxSourceSizeBytes​(java.lang.String sourceMimetype, java.lang.String targetMimetype, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      org.alfresco.service.cmr.repository.ContentReader getRawReader​(java.lang.String contentUrl)
      Fetch content from the low-level stores using a content URL.
      org.alfresco.service.cmr.repository.ContentReader getReader​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName propertyQName)
      Gets a reader for the content associated with the given node property.
      long getStoreFreeSpace()
      Gets the remaing available space in the underlying content store.
      long getStoreTotalSpace()
      Gets the total space of the underlying content store (not exclusively Alfresco-controlled binaries).
      org.alfresco.service.cmr.repository.ContentWriter getTempWriter()
      Gets a writer to a temporary location.
      ContentTransformer getTransformer​(java.lang.String sourceMimetype, java.lang.String targetMimetype)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      ContentTransformer getTransformer​(java.lang.String sourceUrl, java.lang.String sourceMimetype, long sourceSize, java.lang.String targetMimetype, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      ContentTransformer getTransformer​(java.lang.String sourceMimetype, java.lang.String targetMimetype, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      java.util.List<ContentTransformer> getTransformers​(java.lang.String sourceUrl, java.lang.String sourceMimetype, long sourceSize, java.lang.String targetMimetype, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      org.alfresco.service.cmr.repository.ContentWriter getWriter​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName propertyQName, boolean update)
      Get a content writer for the given node property, choosing to optionally have the node property updated automatically when the content stream closes.
      void init()
      Service initialise
      boolean isTransformable​(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      boolean isTransformable​(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      void onUpdateProperties​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
      Update properties policy behaviour
      void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)  
      void setDictionaryService​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)  
      void setEagerContentStoreCleaner​(EagerContentStoreCleaner eagerContentStoreCleaner)  
      void setIgnoreEmptyContent​(boolean ignoreEmptyContent)  
      void setImageMagickContentTransformer​(ContentTransformer imageMagickContentTransformer)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      void setMimetypeService​(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)  
      void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)  
      void setPolicyComponent​(PolicyComponent policyComponent)  
      void setRetryingTransactionHelper​(RetryingTransactionHelper helper)  
      void setStore​(org.alfresco.repo.content.ContentStore store)  
      void setTransformerDebug​(TransformerDebug transformerDebug)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      void setTransformerFailover​(boolean transformerFailover)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      void setTransformerRegistry​(ContentTransformerRegistry transformerRegistry)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      void transform​(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      void transform​(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer, java.util.Map<java.lang.String,​java.lang.Object> options)
      Deprecated. 
      void transform​(org.alfresco.service.cmr.repository.ContentReader reader, org.alfresco.service.cmr.repository.ContentWriter writer, TransformationOptions options)
      Deprecated.
      The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • transformerDebug

        @Deprecated
        protected TransformerDebug transformerDebug
        Deprecated.
    • Constructor Detail

      • ContentServiceImpl

        public ContentServiceImpl()
    • Method Detail

      • setDictionaryService

        public void setDictionaryService​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
      • setNodeService

        public void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)
      • setMimetypeService

        public void setMimetypeService​(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
      • setTransformerRegistry

        @Deprecated
        public void setTransformerRegistry​(ContentTransformerRegistry transformerRegistry)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      • setEagerContentStoreCleaner

        public void setEagerContentStoreCleaner​(EagerContentStoreCleaner eagerContentStoreCleaner)
      • setStore

        public void setStore​(org.alfresco.repo.content.ContentStore store)
      • setPolicyComponent

        public void setPolicyComponent​(PolicyComponent policyComponent)
      • setImageMagickContentTransformer

        @Deprecated
        public void setImageMagickContentTransformer​(ContentTransformer imageMagickContentTransformer)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
      • setIgnoreEmptyContent

        public void setIgnoreEmptyContent​(boolean ignoreEmptyContent)
      • setTransformerFailover

        @Deprecated
        public void setTransformerFailover​(boolean transformerFailover)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Allows fail over form one transformer to another when there is more than one transformer available. The cost is that the output of the transformer must go to a temporary file in case it fails.
        Parameters:
        transformerFailover - true (the default) indicate that fail over should take place.
      • setApplicationContext

        public void setApplicationContext​(org.springframework.context.ApplicationContext applicationContext)
                                   throws org.springframework.beans.BeansException
        Specified by:
        setApplicationContext in interface org.springframework.context.ApplicationContextAware
        Throws:
        org.springframework.beans.BeansException
      • setTransformerDebug

        @Deprecated
        public void setTransformerDebug​(TransformerDebug transformerDebug)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Helper setter of the transformer debug.
        Parameters:
        transformerDebug - TransformerDebug
      • init

        public void init()
        Service initialise
      • onUpdateProperties

        public void onUpdateProperties​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                       java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before,
                                       java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
        Update properties policy behaviour
        Parameters:
        nodeRef - the node reference
        before - the before values of the properties
        after - the after values of the properties
      • getStoreFreeSpace

        public long getStoreFreeSpace()
        Description copied from interface: ContentService
        Gets the remaing available space in the underlying content store.
        Specified by:
        getStoreFreeSpace in interface ContentService
        Returns:
        Returns the total, possibly approximate, remaining space (in bytes) available to store content or -1 if no size data is available.
      • getStoreTotalSpace

        public long getStoreTotalSpace()
        Description copied from interface: ContentService
        Gets the total space of the underlying content store (not exclusively Alfresco-controlled binaries).
        Specified by:
        getStoreTotalSpace in interface ContentService
        Returns:
        Returns the total, possibly approximate, size (in bytes) of of the store or -1 if no size data is available.
      • getRawReader

        public org.alfresco.service.cmr.repository.ContentReader getRawReader​(java.lang.String contentUrl)
        Fetch content from the low-level stores using a content URL. None of the metadata associated with the content will be populated. This method should be used only to stream the binary data out when no other metadata is required.

        null is never returned, but the reader should always be checked for existence.

        Specified by:
        getRawReader in interface ContentService
        Parameters:
        contentUrl - a content store URL
        Returns:
        Returns a reader for the URL that needs to be checked.
      • getReader

        public org.alfresco.service.cmr.repository.ContentReader getReader​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                           org.alfresco.service.namespace.QName propertyQName)
        Description copied from interface: ContentService
        Gets a reader for the content associated with the given node property.

        If a content URL is present for the given node then a reader must be returned. The exists method should then be used to detect 'missing' content.

        Specified by:
        getReader in interface ContentService
        Parameters:
        nodeRef - a reference to a node having a content property
        propertyQName - the name of the property, which must be of type content
        Returns:
        Returns a reader for the content associated with the node property, or null if no content has been written for the property
        See Also:
        FileContentReader.getSafeContentReader(ContentReader, String, Object[])
      • getWriter

        public org.alfresco.service.cmr.repository.ContentWriter getWriter​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                           org.alfresco.service.namespace.QName propertyQName,
                                                                           boolean update)
        Description copied from interface: ContentService
        Get a content writer for the given node property, choosing to optionally have the node property updated automatically when the content stream closes.

        If the update flag is off, then the state of the node property will remain unchanged regardless of the state of the written binary data. If the flag is on, then the node property will be updated on the same thread as the code that closed the write channel.

        If no node is supplied, then the writer will provide a stream into the backing content store, but will not be associated with any new or previous content.

        NOTE: The content URL provided will be registered for automatic cleanup in the event that the transaction, in which this method was called, rolls back. If the transaction is successful, the writer may still be open and available for use but the underlying binary will not be cleaned up subsequently. The recommended pattern is to group calls to retrieve the writer in the same transaction as the calls to subsequently update and close the write stream - including setting of the related content properties.

        Specified by:
        getWriter in interface ContentService
        Parameters:
        nodeRef - a reference to a node having a content property, or null to just get a valid writer into a backing content store.
        propertyQName - the name of the property, which must be of type content
        update - true if the property must be updated atomically when the content write stream is closed (attaches a listener to the stream); false if the client code will perform the updates itself.
        Returns:
        Returns a writer for the content associated with the node property
      • getTempWriter

        public org.alfresco.service.cmr.repository.ContentWriter getTempWriter()
        Description copied from interface: ContentService
        Gets a writer to a temporary location. The longevity of the stored temporary content is determined by the system.
        Specified by:
        getTempWriter in interface ContentService
        Returns:
        Returns a writer to an anonymous location
      • transform

        @Deprecated
        public void transform​(org.alfresco.service.cmr.repository.ContentReader reader,
                              org.alfresco.service.cmr.repository.ContentWriter writer,
                              java.util.Map<java.lang.String,​java.lang.Object> options)
                       throws NoTransformerException,
                              org.alfresco.service.cmr.repository.ContentIOException
        Deprecated.
        Specified by:
        transform in interface ContentService
        Parameters:
        reader - the source content location and mimetype
        writer - the target content location and mimetype
        options - the options for the transformation
        Throws:
        NoTransformerException - if no transformer exists for the given source and target mimetypes of the reader and writer
        org.alfresco.service.cmr.repository.ContentIOException - if the transformation fails
        See Also:
        ContentTransformerRegistry, ContentTransformer
      • transform

        @Deprecated
        public void transform​(org.alfresco.service.cmr.repository.ContentReader reader,
                              org.alfresco.service.cmr.repository.ContentWriter writer,
                              TransformationOptions options)
                       throws NoTransformerException,
                              org.alfresco.service.cmr.repository.ContentIOException
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Specified by:
        transform in interface ContentService
        Parameters:
        reader - the source content location and mimetype
        writer - the target content location and mimetype
        options - the options for the transformation
        Throws:
        NoTransformerException - if no transformer exists for the given source and target mimetypes of the reader and writer
        org.alfresco.service.cmr.repository.ContentIOException - if the transformation fails
        See Also:
        ContentTransformerRegistry, ContentTransformer
      • getTransformer

        @Deprecated
        public ContentTransformer getTransformer​(java.lang.String sourceMimetype,
                                                 java.lang.String targetMimetype)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Description copied from interface: ContentService
        Fetch the transformer that is capable of transforming the content in the given source mimetype to the given target mimetype.

        Since no transformation options are provided only the source and destination mimetypes are considered when getting the correct transformer.

        Specified by:
        getTransformer in interface ContentService
        Parameters:
        sourceMimetype - the source mimetype
        targetMimetype - the target mimetype
        Returns:
        Returns a transformer that can be used, or null if one was not available
        See Also:
        ContentTransformerRegistry, ContentTransformer
      • getTransformer

        @Deprecated
        public ContentTransformer getTransformer​(java.lang.String sourceMimetype,
                                                 java.lang.String targetMimetype,
                                                 TransformationOptions options)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Specified by:
        getTransformer in interface ContentService
      • getTransformer

        @Deprecated
        public ContentTransformer getTransformer​(java.lang.String sourceUrl,
                                                 java.lang.String sourceMimetype,
                                                 long sourceSize,
                                                 java.lang.String targetMimetype,
                                                 TransformationOptions options)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Description copied from interface: ContentService
        Fetch the transformer that is capable of transforming the content in the given source mimetype to the given target mimetype with the provided transformation options.

        The transformation options provide a finer grain way of discovering the correct transformer, since the values and type of the options provided are considered by the transformer when deciding whether it can satisfy the transformation request.

        Specified by:
        getTransformer in interface ContentService
        Parameters:
        sourceUrl - TODO
        sourceMimetype - the source mimetype
        sourceSize - the source size (bytes). Ignored if negative.
        targetMimetype - the target mimetype
        options - the transformation options
        Returns:
        ContentTransformer a transformer that can be used, or null if one was not available
        See Also:
        ContentService.getTransformer(String, java.lang.String, long, java.lang.String, org.alfresco.service.cmr.repository.TransformationOptions)
      • getTransformers

        @Deprecated
        public java.util.List<ContentTransformer> getTransformers​(java.lang.String sourceUrl,
                                                                  java.lang.String sourceMimetype,
                                                                  long sourceSize,
                                                                  java.lang.String targetMimetype,
                                                                  TransformationOptions options)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Description copied from interface: ContentService
        Fetch the transformers that are capable of transforming the content in the given source mimetype to the given target mimetype with the provided transformation options.

        The transformation options provide a finer grain way of discovering the correct transformer, since the values and type of the options provided are considered by the transformer when deciding whether it can satisfy the transformation request.

        Specified by:
        getTransformers in interface ContentService
        Parameters:
        sourceUrl - TODO
        sourceMimetype - the source mimetype
        sourceSize - the source size (bytes). Ignored if negative.
        targetMimetype - the target mimetype
        options - the transformation options
        Returns:
        ContentTransformer the transformers that can be used, or null if none are available
        See Also:
        ContentService.getTransformers(String, java.lang.String, long, java.lang.String, org.alfresco.service.cmr.repository.TransformationOptions)
      • getMaxSourceSizeBytes

        @Deprecated
        public long getMaxSourceSizeBytes​(java.lang.String sourceMimetype,
                                          java.lang.String targetMimetype,
                                          TransformationOptions options)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Returns the maximum source size of any content that may transformed between the supplied mimetypes using the supplied options.
        Specified by:
        getMaxSourceSizeBytes in interface ContentService
        Parameters:
        sourceMimetype - source mime type
        targetMimetype - target mime type
        options - transformation options
        Returns:
        0 if there are no transformers, -1 if there is no limit or if positive number the size in bytes.
      • getActiveTransformers

        @Deprecated
        public java.util.List<ContentTransformer> getActiveTransformers​(java.lang.String sourceMimetype,
                                                                        java.lang.String targetMimetype,
                                                                        TransformationOptions options)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Specified by:
        getActiveTransformers in interface ContentService
      • getActiveTransformers

        @Deprecated
        public java.util.List<ContentTransformer> getActiveTransformers​(java.lang.String sourceMimetype,
                                                                        long sourceSize,
                                                                        java.lang.String targetMimetype,
                                                                        TransformationOptions options)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Specified by:
        getActiveTransformers in interface ContentService
      • getImageTransformer

        @Deprecated
        public ContentTransformer getImageTransformer()
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Description copied from interface: ContentService
        Fetch the transformer that is capable of transforming image content.
        Specified by:
        getImageTransformer in interface ContentService
        Returns:
        Returns a transformer that can be used, or null if one was not available
        See Also:
        ContentService.getImageTransformer()
      • isTransformable

        @Deprecated
        public boolean isTransformable​(org.alfresco.service.cmr.repository.ContentReader reader,
                                       org.alfresco.service.cmr.repository.ContentWriter writer)
        Deprecated.
        The transformations code is being moved out of the codebase and replaced by the new async RenditionService2 or other external libraries.
        Specified by:
        isTransformable in interface ContentService
        See Also:
        ContentTransformerRegistry, ContentTransformer