我想在 Alfresco 中添加一个方面来添加我的自定义元数据,我只想知道如何将这个方面添加到所有新创建的文件中。
自定义元数据文件添加到 \Alfresco\tomcat\shared\classes\alfresco\extension 目录中。
我想在 Alfresco 中添加一个方面来添加我的自定义元数据,我只想知道如何将这个方面添加到所有新创建的文件中。
自定义元数据文件添加到 \Alfresco\tomcat\shared\classes\alfresco\extension 目录中。
如果您需要为添加到 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>
例如,向您上传到的文件夹添加一条规则,该文件夹在创建新文件时配置了“添加方面”操作。