Merged BRANCHES/V3.4 to HEAD (to fix ALF-5837)

23478: ALF-5303: Upload new version fails when file uploaded to sub-folder and parent folder has rule for update

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@24245 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gavin Cornwell
2010-12-06 15:36:56 +00:00
parent da8935725d
commit d317abfa36
3 changed files with 42 additions and 12 deletions

View File

@@ -21,13 +21,17 @@ package org.alfresco.repo.rule.ruletrigger;
import java.util.HashSet;
import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.action.ActionModel;
import org.alfresco.repo.policy.PolicyComponent;
import org.alfresco.repo.rule.RuleModel;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.rule.RuleType;
import org.alfresco.service.namespace.QName;
/**
* Rule trigger abstract base
@@ -151,9 +155,27 @@ public abstract class RuleTriggerAbstractBase implements RuleTrigger
*/
protected void triggerRules(NodeRef nodeRef, NodeRef actionedUponNodeRef)
{
for (RuleType ruleType : this.ruleTypes)
{
ruleType.triggerRuleType(nodeRef, actionedUponNodeRef, this.executeRuleImmediately);
}
// Do not trigger rules for rule and action type nodes
if (ignoreTrigger(actionedUponNodeRef) == false)
{
for (RuleType ruleType : this.ruleTypes)
{
ruleType.triggerRuleType(nodeRef, actionedUponNodeRef, this.executeRuleImmediately);
}
}
}
private boolean ignoreTrigger(NodeRef actionedUponNodeRef)
{
boolean result = false;
QName typeQName = nodeService.getType(actionedUponNodeRef);
if (typeQName.equals(RuleModel.TYPE_RULE) == true ||
typeQName.equals(ActionModel.TYPE_ACTION) == true ||
typeQName.equals(ActionModel.TYPE_COMPOSITE_ACTION) == true ||
typeQName.equals(ContentModel.TYPE_THUMBNAIL) == true)
{
result = true;
}
return result;
}
}