有没有办法强制alfresco共享扩展模块的加载/评估顺序?
我们目前在 module-general.jar 中定义了两个扩展模块,在 project-specific.jar 中定义了另一个模块 module-general.jar中的模块定制应用于所有网站的功能,例如仅允许创建私人网站等。
project-specific.jar中的模块取决于在其他常规模块正常工作后加载/评估。
当模块被添加到“已部署模块”集并按下“应用更改”按钮时,一切都按预期工作。
模块顺序如下:
GEN (00) Hide Create Site
GEN (01) Manage Permissions
PRO_ID Manage Permissions
在http://localhost:8080/share/page/modules/deploy
重启Alfresco / tomcat和http GET后,活动模块的顺序不同,并且“管理权限”功能不再按照请求它的项目的预期工作。
服务器重启后的模块顺序如下:
PRO_ID Manage Permissions
GEN (00) Hide Create Site
GEN (01) Manage Permissions
我们怎样才能确保在项目特定模块之前加载/评估“常规”自定义模块,因为它们在服务器重启之前被激活了?
此致
Alfresco 4.0.2.9/Tomcat/Win7
答案 0 :(得分:2)
使用标签 共享模块xml文件中的 auto-deploy-index 降低优先级越高的数字
答案 1 :(得分:1)
您应该在module.properties
文件中指定依赖项,如wiki中所述。对于GEN (00) Hide Create Site
,您无需执行任何操作。对于GEN (01) Manage Permissions
,您需要以下内容:
module.depends.com.tullo.alfresco.module.gen00=1.0-*
和PRO_ID Manage Permissions
:
module.depends.com.tullo.alfresco.cmodule.gen01=1.0-*
使上述内容适应您开发的模块的真实ID和版本。
答案 2 :(得分:1)
目前无法在Share Extensibility模块中声明依赖项,就像使用AMP一样。
因此无法保证模块首次添加到共享时的加载顺序。
模块可以由模块部署控制台中的管理员重新排序,这是我用来确保依赖模块在它们所依赖的模块之后加载的方法(参见上周的Tech Talk Live}举例来说。)
不幸的是,auto-deploy
标志设置为true
的模块不会保留此排序。这是因为自动部署无法将状态持久保存到存储库(因为没有活动的用户会话)。每次重新启动服务器时都会重新部署自动部署的模块,这就是它们最终重新出现在列表末尾的原因。
解决方案是避免对加载顺序重要的任何模块使用自动部署。我发现在我的模块描述符中进行必要的代码更改后,我必须删除所有模块并应用更改,然后以正确的顺序重新添加它们并再次单击“应用更改”。