我有一个Alfresco模块,我希望在安装新版本时做一些清理工作。我可以在Alfresco启动时运行代码吗?
在当前情况下,较早版本的模块在存储库的根目录下创建了具有自定义属性的文件夹节点。之后我们决定拥有多个这样的节点,而且他们都不在这个位置。我想将这个模块代码的下一个版本放到Alfresco启动时运行,检查旧节点是否存在,将它的属性复制到适当的新节点中,然后删除旧节点。
这样的事情可能吗?我查看了Bootstrap配置文件,但似乎只允许将某些东西添加到存储库,而不是修改或删除它们。
我有一个Alfresco模块,我希望在安装新版本时做一些清理工作。我可以在Alfresco启动时运行代码吗?
在当前情况下,较早版本的模块在存储库的根目录下创建了具有自定义属性的文件夹节点。之后我们决定拥有多个这样的节点,而且他们都不在这个位置。我想将这个模块代码的下一个版本放到Alfresco启动时运行,检查旧节点是否存在,将它的属性复制到适当的新节点中,然后删除旧节点。
这样的事情可能吗?我查看了Bootstrap配置文件,但似乎只允许将某些东西添加到存储库,而不是修改或删除它们。
是的,你可以做到这一点,也许你错过了正确的位置有关的文件中:
如果你打开Import Strategy你会发现一个部分Per BootstrapView
,你应该使用类似REPLACE_EXISTING
或UPDATE_EXISTING
为您ACP打包的内容(如果您使用ACP作为引导程序导入策略)。
Here是对UUID Bindings
值的更详细描述。
希望有所帮助。
我的建议是你写一个补丁。这是一个类实现 org.alfresco.repo.admin.patch.AbstractPatch
然后,你可以做任何你想要的引导(除了执行搜索solr,因为它不会可用)。
添加一些弹簧配置,看看文件patch-services-context.xml的灵感。