mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged DEV to HEAD
- ALF-8806 RINF 41: Lucene Removal: Fix CopyService - ALF-9028: RINF 41: Fix Aspect cm:copiedFrom - ALF-9029 RINF 49: Lucene Removal: CheckOutCheckInService API - ALF-9032: RINF 49: fixes to cm:workingcopy aspect 28996: Dev branch for De-Lucene work pending patches 29004: Evaluator runs in read-only txn 29006: Additional PermissionCheckedCollection.create method - Use an existing collection's permission check data (cut-off, etc) to wrap a new collection 29007: CopyService and CheckOutCheckInService refactors to remove Lucene CopyService: Removed cm:source property from cm:copiedfrom aspect and replaced with a cm:original association. Added CQ-based APIs to query for copies Added APIs to support bi-directional walking of copy association Fixed sundry uses of cm:copiedfrom esp. all uses related to cm:workingcopy CheckOutCheckInService: Check-out now creates a source aspect cm:checkedOut with 1:1 relationship to cm:workingcopy via cm:workingcopylink Removed explicit use of cm:workingcopy aspect and replaced it with calls to COCI API 29083: Audit tests fail when indexing is turned off. Also removed a getReader() call during rule evaluation, leading to a 'sub-action' read being recorded. 29113: NodeDAO.getNodesWithAspects supports paging 29135: Removed unused patch queries 29139: Basic patch (still terminates with error) to upgrade cm:copiedfrom and cm:workingcopy 29157: Tested patch for cm:copiedfrom and cm:workingcopy aspects git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29159 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -27,7 +27,7 @@ import org.alfresco.repo.content.MimetypeMap;
|
||||
import org.alfresco.repo.policy.JavaBehaviour;
|
||||
import org.alfresco.repo.transaction.TransactionalResourceHelper;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ContentReader;
|
||||
import org.alfresco.service.cmr.repository.ContentData;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
@@ -88,12 +88,12 @@ public class OnContentUpdateRuleTrigger extends RuleTriggerAbstractBase
|
||||
*/
|
||||
public void onContentUpdate(NodeRef nodeRef, boolean newContent)
|
||||
{
|
||||
|
||||
// Check the new content and make sure that we do indeed want to trigger the rule
|
||||
boolean fail = false;
|
||||
if (newContent == true)
|
||||
{
|
||||
Boolean value = (Boolean)nodeService.getProperty(nodeRef, QName.createQName(NamespaceService.APP_MODEL_1_0_URI, "editInline"));
|
||||
|
||||
// Check the new content and make sure that we do indeed want to trigger the rule
|
||||
boolean fail = false;
|
||||
if (newContent == true)
|
||||
{
|
||||
Boolean value = (Boolean)nodeService.getProperty(nodeRef, QName.createQName(NamespaceService.APP_MODEL_1_0_URI, "editInline"));
|
||||
if (value != null)
|
||||
{
|
||||
boolean editInline = value.booleanValue();
|
||||
@@ -102,18 +102,17 @@ public class OnContentUpdateRuleTrigger extends RuleTriggerAbstractBase
|
||||
fail = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (fail == false)
|
||||
{
|
||||
ContentReader contentReader = this.contentService.getReader(nodeRef, ContentModel.PROP_CONTENT);
|
||||
if (contentReader == null ||
|
||||
contentReader.exists() == false ||
|
||||
isZeroLengthOfficeDoc(contentReader) == true)
|
||||
{
|
||||
fail = true;
|
||||
}
|
||||
// Note: Don't use the ContentService.getReader() because we don't need access to the content
|
||||
ContentData contentData = (ContentData) nodeService.getProperty(nodeRef, ContentModel.PROP_CONTENT);
|
||||
if (contentData == null || isZeroLengthOfficeDoc(contentData))
|
||||
{
|
||||
fail = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Double check for content created in this transaction
|
||||
if (fail == false && !newContent)
|
||||
@@ -126,11 +125,11 @@ public class OnContentUpdateRuleTrigger extends RuleTriggerAbstractBase
|
||||
}
|
||||
fail = wasCreatedInTxn;
|
||||
}
|
||||
|
||||
// Trigger the rules in the appropriate way
|
||||
|
||||
// Trigger the rules in the appropriate way
|
||||
if (fail == false && newContent == this.onNewContent)
|
||||
{
|
||||
if (triggerParentRules == true)
|
||||
if (triggerParentRules == true)
|
||||
{
|
||||
if (logger.isDebugEnabled() == true)
|
||||
{
|
||||
@@ -153,20 +152,20 @@ public class OnContentUpdateRuleTrigger extends RuleTriggerAbstractBase
|
||||
/**
|
||||
* Indicates whether we are dealing with a zero length office document or not
|
||||
*
|
||||
* @param contentReader the content reader
|
||||
* @return boolean true if zero length office document, false otherwise
|
||||
* @param contentData the content details
|
||||
* @return boolean true if zero length office document, false otherwise
|
||||
*/
|
||||
private boolean isZeroLengthOfficeDoc(ContentReader contentReader)
|
||||
private boolean isZeroLengthOfficeDoc(ContentData contentData)
|
||||
{
|
||||
boolean result = false;
|
||||
if (contentReader.getSize() == 0 &&
|
||||
(MimetypeMap.MIMETYPE_WORD.equals(contentReader.getMimetype()) == true ||
|
||||
MimetypeMap.MIMETYPE_EXCEL.equals(contentReader.getMimetype()) == true ||
|
||||
MimetypeMap.MIMETYPE_PPT.equals(contentReader.getMimetype()) == true))
|
||||
{
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
boolean result = false;
|
||||
if (contentData.getSize() == 0 &&
|
||||
(MimetypeMap.MIMETYPE_WORD.equals(contentData.getMimetype()) == true ||
|
||||
MimetypeMap.MIMETYPE_EXCEL.equals(contentData.getMimetype()) == true ||
|
||||
MimetypeMap.MIMETYPE_PPT.equals(contentData.getMimetype()) == true))
|
||||
{
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user