mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-30 18:15:39 +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
226 lines
7.2 KiB
Java
226 lines
7.2 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.wcm.asset;
|
|
|
|
import java.io.File;
|
|
import java.io.Serializable;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
import org.alfresco.service.PublicService;
|
|
import org.alfresco.service.cmr.repository.ContentReader;
|
|
import org.alfresco.service.cmr.repository.ContentWriter;
|
|
import org.alfresco.service.namespace.QName;
|
|
import org.alfresco.service.Auditable;
|
|
import org.alfresco.service.NotAuditable;
|
|
|
|
/**
|
|
* Asset Service fundamental API.
|
|
* <p>
|
|
* This service API is designed to support the public facing Asset APIs.
|
|
*
|
|
* @author janv
|
|
*/
|
|
public interface AssetService
|
|
{
|
|
/**
|
|
* Create folder within given sandbox and webApp
|
|
*/
|
|
@NotAuditable
|
|
public void createFolderWebApp(String sbStoreId, String webApp, String parentFolderPathRelativeToWebApp, String name);
|
|
|
|
/**
|
|
* Create folder within given sandbox
|
|
*/
|
|
@NotAuditable
|
|
public void createFolder(String sbStoreId, String parentFolderPath, String name, Map<QName, Serializable> properties);
|
|
|
|
/**
|
|
* Create (empty) file within given sandbox and webApp, return content writer for file contents
|
|
*/
|
|
@NotAuditable
|
|
public ContentWriter createFileWebApp(String sbStoreId, String webApp, String parentFolderPath, String name);
|
|
|
|
/**
|
|
* Create (empty) file within given sandbox, return content writer for file contents
|
|
*/
|
|
@NotAuditable
|
|
public ContentWriter createFile(String sbStoreId, String parentFolderPath, String name, Map<QName, Serializable> properties);
|
|
|
|
/**
|
|
* Get asset (file or folder) for given sandbox, webApp and path (within webApp)
|
|
* <p>
|
|
* Returns null if the asset can not be found
|
|
*/
|
|
@NotAuditable
|
|
public AssetInfo getAssetWebApp(String sbStoreId, String webApp, String pathRelativeToWebApp);
|
|
|
|
/**
|
|
* Get asset (file or folder) for given sandbox, webApp and path (within webApp), optionally include deleted assets
|
|
* <p>
|
|
* Returns null if the asset can not be found
|
|
*/
|
|
@NotAuditable
|
|
public AssetInfo getAssetWebApp(String sbStoreId, String webApp, String pathRelativeToWebApp, boolean includeDeleted);
|
|
|
|
/**
|
|
* Get asset (file or folder) for given sandbox and path
|
|
* <p>
|
|
* Returns null if the asset can not be found
|
|
*
|
|
* @param sbStoreId sandbox store id
|
|
* @param path asset path (eg. /www/avm_webapps/ROOT/myFile)
|
|
* @return AssetInfo asset info
|
|
*/
|
|
@NotAuditable
|
|
public AssetInfo getAsset(String sbStoreId, String path);
|
|
|
|
/**
|
|
* Get asset (file or folder) for given sandbox version and path, optionally include deleted assets
|
|
* <p>
|
|
* Returns null if the asset can not be found
|
|
*/
|
|
@NotAuditable
|
|
public AssetInfo getAsset(String sbStoreId, int version, String path, boolean includeDeleted);
|
|
|
|
/**
|
|
* Get content writer for given file asset, to allow file contents to be written or updated
|
|
*/
|
|
@NotAuditable
|
|
public ContentWriter getContentWriter(AssetInfo fileAsset);
|
|
|
|
/**
|
|
* Get content reader for given file asset, to allow file contents to be read
|
|
*/
|
|
@NotAuditable
|
|
public ContentReader getContentReader(AssetInfo fileAsset);
|
|
|
|
/**
|
|
* Get asset properties
|
|
*/
|
|
@NotAuditable
|
|
public Map<QName, Serializable> getAssetProperties(AssetInfo asset);
|
|
|
|
/**
|
|
* Set asset properties (will replace all existing properties)
|
|
*/
|
|
@NotAuditable
|
|
public void setAssetProperties(AssetInfo asset, Map<QName, Serializable> properties);
|
|
|
|
/**
|
|
* Update asset properties (will replace given set of properties, if they already exist)
|
|
*/
|
|
@NotAuditable
|
|
public void updateAssetProperties(AssetInfo asset, Map<QName, Serializable> properties);
|
|
|
|
/**
|
|
* Apply aspect to asset, with given properties (can be null)
|
|
*/
|
|
@NotAuditable
|
|
public void addAspect(AssetInfo asset, QName aspectName, Map<QName, Serializable> properties);
|
|
|
|
/**
|
|
* Remove aspect from asset, and any related properties
|
|
*/
|
|
@NotAuditable
|
|
public void removeAspect(AssetInfo asset, QName aspectName);
|
|
|
|
/**
|
|
* Get set of aspects applied to asset
|
|
*/
|
|
@NotAuditable
|
|
public Set<QName> getAspects(AssetInfo asset);
|
|
|
|
/**
|
|
* True, if asset has given aspect applied
|
|
*/
|
|
@NotAuditable
|
|
public boolean hasAspect(AssetInfo asset, QName aspectName);
|
|
|
|
/**
|
|
* List assets within given sandbox and webApp and path (within webApp), optionally include deleted
|
|
*/
|
|
@NotAuditable
|
|
public List<AssetInfo> listAssetsWebApp(String sbStoreId, String webApp, String parentFolderPathRelativeToWebApp, boolean includeDeleted);
|
|
|
|
/**
|
|
* List assets within given sandbox and path, optionally include deleted
|
|
*/
|
|
@NotAuditable
|
|
public List<AssetInfo> listAssets(String sbStoreId, String parentFolderPath, boolean includeDeleted);
|
|
|
|
/**
|
|
* List assets within given sandbox version and path, optionally include deleted
|
|
*/
|
|
@NotAuditable
|
|
public List<AssetInfo> listAssets(String sbStoreId, int version, String parentFolderPath, boolean includeDeleted);
|
|
|
|
/**
|
|
* Delete asset
|
|
*/
|
|
@NotAuditable
|
|
public void deleteAsset(AssetInfo asset);
|
|
|
|
/**
|
|
* Rename asset
|
|
*/
|
|
@NotAuditable
|
|
public AssetInfo renameAsset(AssetInfo asset, String newName);
|
|
|
|
/**
|
|
* Copy asset(s) within sandbox
|
|
* <p>
|
|
* Note: folder asset will be recursively copied
|
|
* Note: file asset(s) must have content
|
|
*/
|
|
@NotAuditable
|
|
public AssetInfo copyAsset(AssetInfo asset, String parentFolderPath);
|
|
|
|
// TODO - copy asset to different sandbox ?
|
|
|
|
/**
|
|
* Move asset within sandbox
|
|
*/
|
|
@NotAuditable
|
|
public AssetInfo moveAsset(AssetInfo asset, String parentFolderPath);
|
|
|
|
/**
|
|
* Bulk import assets into sandbox
|
|
*/
|
|
@NotAuditable
|
|
public void bulkImport(String sbStoreId, String parentFolderPath, File zipFile, boolean isHighByteZip);
|
|
|
|
/**
|
|
* Runtime check to get lock (and owner) for asset - null if not locked
|
|
*
|
|
* @return String lock owner (null if path not locked)
|
|
*/
|
|
@NotAuditable
|
|
public String getLockOwner(AssetInfo fileAsset);
|
|
|
|
/**
|
|
* Runtime check to check if the current user can perform (write) operations on the asset when locked
|
|
*
|
|
* @return boolean true if current user has write access
|
|
*/
|
|
@NotAuditable
|
|
public boolean hasLockAccess(AssetInfo fileAsset);
|
|
}
|