Java 露天入站规则
我正在将入站规则添加到alfresco中的文件夹中。如何确定它的节点是刚创建的还是从另一个文件夹中移动的?下一个代码片段可用于在创建新文件夹时添加新行为。此示例将针对存储库中创建的每个文件夹触发。你必须自己实现你要用它做的事情Java 露天入站规则,java,alfresco,Java,Alfresco,我正在将入站规则添加到alfresco中的文件夹中。如何确定它的节点是刚创建的还是从另一个文件夹中移动的?下一个代码片段可用于在创建新文件夹时添加新行为。此示例将针对存储库中创建的每个文件夹触发。你必须自己实现你要用它做的事情 public class SalesProjectFolderBehaviour implements NodeServicePolicies.OnCreateNodePolicy{ /** The policy component. */ private Policy
public class SalesProjectFolderBehaviour implements NodeServicePolicies.OnCreateNodePolicy{
/** The policy component. */
private PolicyComponent policyComponent;
/** The on create node behaviour. */
private Behaviour onCreateNodeBehaviour;
/** The service registry. */
private ServiceRegistry serviceRegistry;
/**
* Inits the.
*/
public void init()
{
LOG.error("initializing the behaviours");
// Create behaviours
this.onCreateNodeBehaviour = new JavaBehaviour(this, "onCreateNode",
NotificationFrequency.TRANSACTION_COMMIT);
// Bind behaviours to node policies
this.policyComponent.bindClassBehaviour(QName.createQName(
NamespaceService.ALFRESCO_URI, "onCreateNode"),
org.alfresco.model.ContentModel.TYPE_FOLDER, this.onCreateNodeBehaviour);
}
/* (non-Javadoc)
* @see org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy#onCreateNode(org.alfresco.service.cmr.repository.ChildAssociationRef)
*/
@Override
public void onCreateNode(ChildAssociationRef childAssocRef) {
LOG.trace("created new folder!");
}
}
OP正在寻找有关文件夹规则而不是行为的帮助。嗨,Jeff,行为的实现不能像文件夹规则一样吗?我知道我的答案不是入站规则,但它可以完成同样的事情。。嗨,Qkyrie,谢谢你的回答,但我不想在我的逻辑中使用策略。@Qkyrie,是的,行为类似于规则,你可以将它绑定到一个或多个策略,这样当某个节点发生某种情况时,你的逻辑就会被触发。但规则是最终用户可配置的,可以分配给各个文件夹,而行为需要开发人员编写代码,管理员部署,并且绑定到类型和方面。正如您所指出的,您建议的行为将在repo中的每个文件夹上运行,而不仅仅是最终用户关心的文件夹。解决方法:对于新节点,“cm:created”等于“cm:modified”。所以我要检查“cm:created”是否等于“cm:modified”,这是一个新节点。