0

我想在 Alfresco 中添加一个方面来添加我的自定义元数据,我只想知道如何将这个方面添加到所有新创建的文件中。

自定义元数据文件添加到 \Alfresco\tomcat\shared\classes\alfresco\extension 目录中。

4

2 回答 2

3

如果您需要为添加到 Alfresco 的所有内容添加一个方面,无论位置如何,您最好使用JavaBehavior附加到OnCreateNodePolicy.

您可以查看一些 Alfresco类以获取有关如何创建自定义行为的示例,大致如下(用于cm:content将行为附加到每个文档):

public class AddAspectBehavior implements NodeServicePolicies.OnCreateNodePolicy
{
    /** Policy component */
    private PolicyComponent policyComponent;

    /** Node service */
    private NodeService nodeService;

    /** Dictionary service */
    private DictionaryService dictionaryService;

    // TODO: add setters for the services

    public void init()
    {
        this.policyComponent.bindClassBehaviour(
                NodeServicePolicies.OnCreateNodePolicy.QNAME, 
                ContentModel.TYPE_CONTENT, 
                new JavaBehaviour(this, "onCreateNode", NotificationFrequency.TRANSACTION_COMMIT));
    } 

    @Override
    public void onCreateNode(ChildAssociationRef childAssocRef)
    {
        Map<QName,Serializable> aspectValues = new HashMap<QName,Serializable>();
        // TODO: add relevand properties
        nodeService.addAspect(childAssocReg.getChildRef(), MyCustomModel.ASPECT_TO_ADD, props);
    }
}

然后,在一些 Spring 上下文文件中:

<bean id="my_package_behaviors_AddAspect"
      class="my.package.AddAspectBehavior"
      init-method="init">
      <property name="nodeService" ref="NodeService"/>
      <property name="policyComponent" ref="policyComponent"/>
</bean>
于 2013-05-22T12:08:28.827 回答
3

例如,向您上传到的文件夹添加一条规则,该文件夹在创建新文件时配置了“添加方面”操作。

于 2013-05-22T11:37:26.760 回答