mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-07 18:25:23 +00:00
28236: ALF-8810: Removed trailing space from discussion.discussion_for Italian translation 28241: Incremented version revision for 3.4.4 28284: ALF-835 - WCM/AVM: copy (empty) folder into itself 28285: ALF-6863: More than one cifs device breaks the web UI (explorer) 28290: ALF-8840: user-*.atomentry.ftl 28291: ALF-6863: Continuation of fix by Arseny 28336: ALF-8768: Fixed typo in comment on wcm-bootstrap-context.xml 28363: Merged DEV to V3.4-BUG-FIX 28262: ALF-8847: WCM: OrphanReaper contention throws error after 39 retries. Checkin Comment: Use JobLockService to make sure that only one OrphanReaper job is working. Generate list of nodes that must be processed in OrphanReaper.doBatch() transaction. 28386: ALF-9100: Merged PATCHES/V3.4.1 to V3.4-BUG-FIX 28249: ALF-8946: Avoid one full table scan per batch in full reindex - Now each batch scans a single time sample, dynamically adjusted based on the number of transactions in the previous sample, always aiming for 1000 transactions per sample. 28394: Fixed ALF-9090: NPE during inter-cluster subsystem messaging - Bean ID is a List<String> and might not be recognized on receiving machine - Log warning when bean ID is not available (unsymmetrical configuration, perhaps?) 28396: Merged DEV to V3.4-BUG-FIX 28384: ALF-6150: Initial state lost when non-versionable document is saved for the first time Creation of new version of document before writing its content was added to - AbstractAlfrescoMethodHandler->putDocument (this method is used by Office 2003, 2007) - VtiIfHeaderAction->doPut (this method is used by Office 2007 and 2010 on Windows 7) Creation of new version was added twice to AbstractAlfrescoMethodHandler to avoid affecting initial version when transaction is committed. 28432: Merged DEV to V3.4-BUG-FIX 28431: ALF-8530: Pressing the info icon creates an unrecorded file in the ContentStore Use ContentService.getTempWriter() in BaseContentNode$TemplateContentData.getContentAsText() method. 28435: Merged DEV/TEMPORARY to V3.4-BUG-FIX 28428: ALF-9015: cm:modifier not updated when document is updated via CIFS In ContentDiskDriver.closeFile() added ContentModel.PROP_MODIFIER property update. 28436: ALF-8550: Number of http requests (currentThreadsBusy) increases when session times out during creation of webform - Corrected use of read and write locks 28465: Fix for ALF-8023 Share preview doesn't work if... fixed as outlined by Dmitry. 28478: Merged BRANCHES/DEV/ALAN/AUDIT to BRANCHES/DEV/V3.4-BUG-FIX: 28062-28477 (28062,28063,28080,28081,28302,28303,28334,28340,28464,28469,28477) ALF-8438 Need higher level audit of user actions git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28481 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
180 lines
7.4 KiB
Java
180 lines
7.4 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.coci;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.Map;
|
|
|
|
import org.alfresco.service.Auditable;
|
|
import org.alfresco.service.PublicService;
|
|
import org.alfresco.service.cmr.repository.NodeRef;
|
|
import org.alfresco.service.namespace.QName;
|
|
|
|
|
|
/**
|
|
* Version operations service interface
|
|
*
|
|
* @author Roy Wetherall
|
|
*/
|
|
public interface CheckOutCheckInService
|
|
{
|
|
/**
|
|
* Checks out the given node placing a working copy in the destination specified.
|
|
* <p>
|
|
* When a node is checked out a read-only lock is placed on the original node and
|
|
* a working copy is placed in the destination specified.
|
|
* <p>
|
|
* The copy aspect is applied to the working copy so that the original node can be
|
|
* identified.
|
|
* <p>
|
|
* The working copy aspect is applied to the working copy so that it can be identified
|
|
* as the working copy of a checked out node.
|
|
* <p>
|
|
* The working copy node reference is returned to the caller.
|
|
*
|
|
* @param nodeRef a reference to the node to checkout
|
|
* @param destinationParentNodeRef the destination node reference for the working
|
|
* copy
|
|
* @param destinationAssocTypeQName the destination child assoc type for the working
|
|
* copy
|
|
* @param destinationAssocQName the destination child assoc qualified name for
|
|
* the working copy
|
|
* @return node reference to the created working copy
|
|
*/
|
|
@Auditable(parameters = {"nodeRef", "destinationParentNodeRef", "destinationAssocTypeQName", "destinationAssocQName"})
|
|
public NodeRef checkout(
|
|
NodeRef nodeRef,
|
|
NodeRef destinationParentNodeRef,
|
|
QName destinationAssocTypeQName,
|
|
QName destinationAssocQName);
|
|
|
|
/**
|
|
* Checks out the working copy of the node into the same parent node with the same child
|
|
* associations details.
|
|
*
|
|
* @see CheckOutCheckInService#checkout(NodeRef, NodeRef, QName, QName)
|
|
*
|
|
* @param nodeRef a reference to the node to checkout
|
|
* @return a node reference to the created working copy
|
|
*/
|
|
@Auditable(parameters = {"nodeRef"})
|
|
public NodeRef checkout(NodeRef nodeRef);
|
|
|
|
/**
|
|
* Checks in the working node specified.
|
|
* <p>
|
|
* When a working copy is checked in the current state of the working copy is copied to the
|
|
* original node. This will include any content updated in the working node.
|
|
* <p>
|
|
* If version properties are provided the original node will be versioned and updated accordingly.
|
|
* <p>
|
|
* If a content Url is provided it will be used to update the content of the working node before the
|
|
* checkin operation takes place.
|
|
* <p>
|
|
* Once the operation has completed the read lock applied to the original node during checkout will
|
|
* be removed and the working copy of the node deleted from the repository, unless the operation is
|
|
* instructed to keep the original node checked out. In which case the lock and the working copy will
|
|
* remain.
|
|
* <p>
|
|
* The node reference to the original node is returned.
|
|
*
|
|
* @param workingCopyNodeRef the working copy node reference
|
|
* @param versionProperties the version properties. If null is passed then the original node
|
|
* is NOT versioned during the checkin operation.
|
|
* @param contentUrl a content url that should be set on the working copy before
|
|
* the checkin operation takes place. If null then the current working
|
|
* copy content is copied back to the original node.
|
|
* @param keepCheckedOut indicates whether the node should remain checked out after the checkin
|
|
* has taken place. When the node remains checked out the working node
|
|
* reference remains the same.
|
|
* @return the node reference to the original node, updated with the checked in
|
|
* state
|
|
*/
|
|
@Auditable(parameters = {"workingCopyNodeRef", "versionProperties", "contentUrl", "keepCheckedOut"})
|
|
public NodeRef checkin(
|
|
NodeRef workingCopyNodeRef,
|
|
Map<String,Serializable> versionProperties,
|
|
String contentUrl,
|
|
boolean keepCheckedOut);
|
|
|
|
/**
|
|
* By default the checked in node is not keep checked in.
|
|
*
|
|
* @see VersionOperationsService#checkin(NodeRef, HashMap<String,Serializable>, String, boolean)
|
|
*
|
|
* @param workingCopyNodeRef the working copy node reference
|
|
* @param versionProperties the version properties. If null is passed then the original node
|
|
* is NOT versioned during the checkin operation.
|
|
* @param contentUrl a content url that should be set on the working copy before
|
|
* the checkin operation takes place. If null then the current working
|
|
* copy content is copied back to the original node.
|
|
* @return the node reference to the original node, updated with the checked in
|
|
* state
|
|
*/
|
|
@Auditable(parameters = {"workingCopyNodeRef", "versionProperties", "contentUrl"})
|
|
public NodeRef checkin(
|
|
NodeRef workingCopyNodeRef,
|
|
Map<String, Serializable> versionProperties,
|
|
String contentUrl);
|
|
|
|
/**
|
|
* If no content url is specified then current content set on the working
|
|
* copy is understood to be current.
|
|
*
|
|
* @see VersionOperationsService#checkin(NodeRef, HashMap<String,Serializable>, String)
|
|
*
|
|
* @param workingCopyNodeRef the working copy node reference
|
|
* @param versionProperties the version properties. If null is passed then the original node
|
|
* is NOT versioned during the checkin operation.
|
|
* @return the node reference to the original node, updated with the checked in
|
|
* state
|
|
*/
|
|
@Auditable(parameters = {"workingCopyNodeRef", "versionProperties"})
|
|
public NodeRef checkin(
|
|
NodeRef workingCopyNodeRef,
|
|
Map<String, Serializable> versionProperties);
|
|
|
|
/**
|
|
* Cancels the checkout for a given working copy.
|
|
* <p>
|
|
* The read-only lock on the original node is removed and the working copy is removed.
|
|
* <p>
|
|
* Note that all modification made to the working copy will be lost and the original node
|
|
* will remain unchanged.
|
|
* <p>
|
|
* A reference to the original node reference is returned.
|
|
*
|
|
* @param workingCopyNodeRef the working copy node reference
|
|
* @return the original node reference
|
|
*/
|
|
@Auditable(parameters = {"workingCopyNodeRef"})
|
|
public NodeRef cancelCheckout(NodeRef workingCopyNodeRef);
|
|
|
|
/**
|
|
* Helper method to retrieve the working copy node reference for a checked out node.
|
|
* <p>
|
|
* A null node reference is returned if the node is not checked out.
|
|
*
|
|
* @param nodeRef a node reference
|
|
* @return the working copy node reference or null if none.
|
|
*/
|
|
@Auditable(parameters = {"nodeRef"})
|
|
public NodeRef getWorkingCopy(NodeRef nodeRef);
|
|
}
|