mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-07 18:25:23 +00:00
34321: Make CIFS virtual circuit per session limit configurable, return correct status code when virtual circuit limit is reached. Required by Terminal Server clients as they can use a single session for all connections. ALF-13156 34322: Services part of fix for ALF-13057 Nodes marked with rma:ghosted aspect (or other configurable aspects/types) should not be renditioned. 34323: Added configuration property for CIFS virtual circuits per session, required by Terminal Server clients. ALF-13156. 34332: Fix for ALF-8405 34336: Merged BRANCHES/V4.0 to BRANCHES/DEV/V4.0-BUG-FIX: 34335: Fixing a failing test as part of ALF-13057 34338: NodeDAO: re-parent "lost & found" orphan child nodes (see ALF-12358 & ALF-13066 / SYS-301) - test fix (follow-on to r34279) 34341: NodeDAO: re-parent "lost & found" orphan child nodes (see ALF-12358 & ALF-13066 / SYS-301) - ano test fix (once more with feeling) 34351: Merged V4.0 to V4.0-BUG-FIX 34335: (RECORD ONLY) Fixing a failing test as part of ALF-13057 34350: Merged V3.4 to V4.0 34327: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - TransformerOptions.sourceNodeRef now populated - Set average transformer time via global properties - TransformerDebug of active transformers added 34331: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - Fix test failures 34346: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - sourceNodeRef was not available to the first child transformer of a ComplexContentTransformer 34358: Merged V4.0 to V4.0-BUG-FIX (RECORD ONLY) 34324: Merged BRANCHES/DEV/V4.0-BUG-FIX to BRANCHES/V4.0: 34322: Services part of fix for ALF-13057 Nodes marked with rma:ghosted aspect (or other configurable aspects/types) should not be renditioned. 34360: Merged V3.4-BUG-FIX to V4.0-BUG-FIX (RECORD ONLY) 34349: Merged V3.4 to V3.4-BUG-FIX 34327: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - TransformerOptions.sourceNodeRef now populated - Set average transformer time via global properties - TransformerDebug of active transformers added 34331: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - Fix test failures 34346: ALF-13030 ALF-13041 Transformer Server needs filename and to make its transformer preferred over OpenOffice and JOD Relates to ALF-10976 and ALF-10412 set of changes - sourceNodeRef was not available to the first child transformer of a ComplexContentTransformer 34348: Merged PATCHES/V3.4.7 to V3.4 34347: ALF-12949: Merged V4.0-BUG-FIX to PATCHES/V3.4.7 33959: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33950: Fix for ALF-12787: - Surf Memory usage optimizations and improvements to ModelObject and derived classes. - Reduced avg memory usage for a ModelObject in the Surf persister cache from 4.0K to 1.5K. - Related refactoring to support removal of in-memory XML DOM previously used to maintain ModelObject state. Now XML DOM only created as needed for set() operations and thrown away. - Improvements to Surf Persister cache strategy to support MRU style concurrent cache, now uses a LinkedConcurrentHashMap to provide a concurrent cache that also has a configurable maximum capacity - Added various improved spring config for persister caches and default sizes. Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33956: Latest SpringSurf libs: Fixed issue with overly aggressive caching of missing page View objects. 34108: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 34107: Added missing jar lib to wcmquickstart and webeditor dependencies 34363: Merged V4.0 to V4.0-BUG-FIX 34362: Merged V3.4 to V4.0 (RECORD ONLY) 34282: ALF-13059: Windows 7 specific: It's impossible to add documents to DWS - Fix by Alex Malinovsky 34348: Merged PATCHES/V3.4.7 to V3.4 34347: ALF-12949: Merged V4.0-BUG-FIX to PATCHES/V3.4.7 33959: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33950: Fix for ALF-12787: - Surf Memory usage optimizations and improvements to ModelObject and derived classes. - Reduced avg memory usage for a ModelObject in the Surf persister cache from 4.0K to 1.5K. - Related refactoring to support removal of in-memory XML DOM previously used to maintain ModelObject state. Now XML DOM only created as needed for set() operations and thrown away. - Improvements to Surf Persister cache strategy to support MRU style concurrent cache, now uses a LinkedConcurrentHashMap to provide a concurrent cache that also has a configurable maximum capacity - Added various improved spring config for persister caches and default sizes. Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 33956: Latest SpringSurf libs: Fixed issue with overly aggressive caching of missing page View objects. 34108: Merged BRANCHES/DEV/V3.4-BUG-FIX to BRANCHES/DEV/V4.0-BUG-FIX 34107: Added missing jar lib to wcmquickstart and webeditor dependencies git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@34364 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
250 lines
11 KiB
Java
250 lines
11 KiB
Java
/*
|
|
* Copyright (C) 2005-2011 Alfresco Software Limited.
|
|
*
|
|
* This file is part of Alfresco
|
|
*
|
|
* Alfresco is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Alfresco is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package org.alfresco.service.cmr.rendition;
|
|
|
|
import java.util.List;
|
|
|
|
import org.alfresco.repo.rendition.RenditionDefinitionPersister;
|
|
import org.alfresco.service.NotAuditable;
|
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
|
import org.alfresco.service.cmr.repository.NodeRef;
|
|
import org.alfresco.service.namespace.QName;
|
|
|
|
/**
|
|
* The Rendition service.
|
|
* @author Nick Smith
|
|
* @author Neil McErlean
|
|
*/
|
|
public interface RenditionService extends RenditionDefinitionPersister
|
|
{
|
|
/**
|
|
* This optional {@link NodeRef} parameter specifies an existing {@link NodeRef} to use
|
|
* as the rendition node. Properties on this node (including the content
|
|
* property cm:content) will be updated as required but the location and
|
|
* name of the node will not change. This parameter takes precedence over
|
|
* PARAM_DESTINATION_PATH_TEMPLATE.
|
|
*/
|
|
public static final String PARAM_DESTINATION_NODE = "rendition-destination-node";
|
|
|
|
/**
|
|
* This optional {@link String} parameter indicates where the rendition will be
|
|
* created. The parameter may specify either the actual file path to the
|
|
* rendition or it may specify a Freemarker template which can be resolved
|
|
* to a file path. In either case the path is relative to the root node of
|
|
* the store in which the source node exists. If the parameter
|
|
* PARAM_DESTINATION_NODE has been set then this parameter will be ignored.
|
|
*/
|
|
public static final String PARAM_DESTINATION_PATH_TEMPLATE = "destination-path-template";
|
|
|
|
/**
|
|
* This optional {@link QName} parameter specifies what the node type of the created rendition will
|
|
* be. If no type is specified then this defaults to cm:content.
|
|
*/
|
|
public static final String PARAM_RENDITION_NODETYPE = "rendition-nodetype";
|
|
|
|
/**
|
|
* This optional {@link Boolean} flag parameter determines whether an
|
|
* existing rendition is moved or orphaned. If the source node already has a
|
|
* rendition and this parameter is <code>false</code> the old rendition will
|
|
* be moved to the new destination location and updated appropriately. If
|
|
* this parameter is set to <code>true</code> then the old rendition will be
|
|
* left in its current location and the rold rendition association from the
|
|
* source node to the old rendition will be deleted.
|
|
*/
|
|
public static final String PARAM_ORPHAN_EXISTING_RENDITION = "orphan-existing-rendition";
|
|
|
|
/**
|
|
* This optional boolean parameter specified whether the rendition is a component within
|
|
* a composite rendition. Such component renditions should not execute the standard
|
|
* pre- and post-rendition behaviour as it will be taken care of by the CompositeRenderingEngine's
|
|
* execution.
|
|
*/
|
|
public static final String PARAM_IS_COMPONENT_RENDITION = "is-component-rendition";
|
|
|
|
/**
|
|
* Returns the {@link RenderingEngineDefinition} associated with the
|
|
* specified rendering engine name.
|
|
*
|
|
* @param name The rendering engine name.
|
|
* @return The {@link RenderingEngineDefinition} or null.
|
|
*/
|
|
@NotAuditable
|
|
RenderingEngineDefinition getRenderingEngineDefinition(String name);
|
|
|
|
/**
|
|
* @return A {@link List} of all available {@link RenderingEngineDefinition}
|
|
* s.
|
|
*/
|
|
@NotAuditable
|
|
List<RenderingEngineDefinition> getRenderingEngineDefinitions();
|
|
|
|
/**
|
|
* Creates a new {@link RenditionDefinition} and sets the rendition name and
|
|
* the rendering engine name to the specified values.
|
|
*
|
|
* @param renditionName A unique identifier used to specify the created
|
|
* {@link RenditionDefinition}.
|
|
* @param renderingEngineName The name of the rendering engine associated
|
|
* with this {@link RenditionDefinition}.
|
|
* @return the created {@link RenditionDefinition}.
|
|
*/
|
|
@NotAuditable
|
|
RenditionDefinition createRenditionDefinition(QName renditionName, String renderingEngineName);
|
|
|
|
/**
|
|
* Creates a new {@link CompositeRenditionDefinition} and sets the rendition
|
|
* name and the rendering engine name to the specified values.
|
|
*
|
|
* @param renditionName A unique identifier used to specify the created
|
|
* {@link RenditionDefinition}.
|
|
* @return the created {@link CompositeRenditionDefinition}.
|
|
*/
|
|
@NotAuditable
|
|
CompositeRenditionDefinition createCompositeRenditionDefinition(QName renditionName);
|
|
|
|
/**
|
|
* This method gets all the renditions of the specified node.
|
|
*
|
|
* @return a list of ChildAssociationRefs which link the source node to the
|
|
* renditions.
|
|
*/
|
|
@NotAuditable
|
|
List<ChildAssociationRef> getRenditions(NodeRef node);
|
|
|
|
/**
|
|
* This method gets all the renditions of the specified node filtered by
|
|
* MIME-type prefix. Renditions whose MIME-type string startsWith the prefix
|
|
* will be returned.
|
|
*
|
|
* @param node the source node for the renditions
|
|
* @param mimeTypePrefix a prefix to check against the rendition MIME-types.
|
|
* This must not be null and must not be an empty String
|
|
* @return a list of ChildAssociationRefs which link the source node to the
|
|
* filtered renditions.
|
|
*/
|
|
@NotAuditable
|
|
List<ChildAssociationRef> getRenditions(NodeRef node, String mimeTypePrefix);
|
|
|
|
/**
|
|
* This method gets the rendition of the specified node identified by
|
|
* the provided rendition name.
|
|
*
|
|
* @param node the source node for the renditions
|
|
* @param renditionName the renditionName used to identify a rendition.
|
|
* @return the ChildAssociationRef which links the source node to the
|
|
* rendition or <code>null</code> if there is no such rendition.
|
|
*/
|
|
@NotAuditable
|
|
ChildAssociationRef getRenditionByName(NodeRef node, QName renditionName);
|
|
|
|
/**
|
|
* This method returns <code>true</code> if the specified NodeRef is a valid
|
|
* rendition node, else <code>false</code>. A nodeRef is a rendition node
|
|
* if it has the rn:rendition aspect (or sub-aspect) applied.
|
|
*
|
|
* @param node
|
|
* @return <code>true</code> if a rendition, else <code>false</code>
|
|
*/
|
|
@NotAuditable
|
|
boolean isRendition(NodeRef node);
|
|
|
|
/**
|
|
* This method gets the source node for the specified rendition node. There
|
|
* should only be one source node for any given rendition node.
|
|
*
|
|
* @param renditionNode the nodeRef holding the rendition.
|
|
* @return the ChildAssociationRef whose parentNodeRef is the source node, or
|
|
* <code>null</code> if there is no source node.
|
|
*
|
|
* @see RenditionService#isRendition(NodeRef)
|
|
*/
|
|
@NotAuditable
|
|
ChildAssociationRef getSourceNode(NodeRef renditionNode);
|
|
|
|
/**
|
|
* This method synchronously renders content as specified by the given
|
|
* {@link RenditionDefinition}. The content to be rendered is provided by
|
|
* the specified source node.
|
|
*
|
|
* @param sourceNode the node from which the content is retrieved.
|
|
* @param renditionDefinition this fully specifies the rendition which is to
|
|
* be performed.
|
|
* @return a child association reference which is the link from the source
|
|
* node to the newly rendered content.
|
|
* @throws RenditionServiceException if there is a problem in rendering the
|
|
* given sourceNode
|
|
*/
|
|
@NotAuditable
|
|
ChildAssociationRef render(NodeRef sourceNode, RenditionDefinition renditionDefinition);
|
|
|
|
/**
|
|
* This method asynchronously renders content as specified by the given
|
|
* {@link RenditionDefinition}. The content to be rendered is provided by
|
|
* the specified source node.
|
|
*
|
|
* @param sourceNode the node from which the content is retrieved.
|
|
* @param renditionDefinition this fully specifies the rendition which is to
|
|
* be performed.
|
|
* @param callback a callback object to handle the ultimate result of the rendition.
|
|
*/
|
|
@NotAuditable
|
|
void render(NodeRef sourceNode, RenditionDefinition renditionDefinition,
|
|
RenderCallback callback);
|
|
|
|
/**
|
|
* This method synchronously renders content as specified by the given
|
|
* {@link RenditionDefinition#getRenditionName() rendition name}.
|
|
* The content to be rendered is provided by the specified source node.
|
|
* <p/>
|
|
* The Rendition Definition will be loaded from the standard location as system
|
|
* thus allowing rendition definitions to be used even when the Data Dictionary
|
|
* has restricted read access.
|
|
*
|
|
* @param sourceNode the node from which the content is retrieved.
|
|
* @param renditionDefinitionQName the rendition definition which is to
|
|
* be performed.
|
|
* @return a child association reference which is the link from the source
|
|
* node to the newly rendered content.
|
|
* @throws RenditionServiceException if there is a problem in rendering the
|
|
* given sourceNode
|
|
* @since 3.4.2
|
|
*/
|
|
@NotAuditable
|
|
ChildAssociationRef render(NodeRef sourceNode, QName renditionDefinitionQName);
|
|
|
|
/**
|
|
* This method asynchronously renders content as specified by the given
|
|
* {@link RenditionDefinition#getRenditionName() rendition definition name}.
|
|
* The content to be rendered is provided by the specified source node.
|
|
* <p/>
|
|
* The Rendition Definition will be loaded from the standard location as system
|
|
* thus allowing rendition definitions to be used even when the Data Dictionary
|
|
* has restricted read access.
|
|
*
|
|
* @param sourceNode the node from which the content is retrieved.
|
|
* @param renditionDefinitionQName the rendition definition which is to
|
|
* be performed.
|
|
* @param callback a callback object to handle the ultimate result of the rendition.
|
|
* @since 3.4.2
|
|
*/
|
|
@NotAuditable
|
|
void render(NodeRef sourceNode, QName renditionDefinitionQName, RenderCallback callback);
|
|
}
|