查找特定event.topic的EventHandler

Mat*_*ski 5 osgi aem

我正在发现AEM工作流程和Request for Approval模型的流程.我注意到(在AEM文档中确认)"如果用户没有发布特定页面所需的权限,则会触发工作流程以通知相关人员您的发布请求".

试图找到它是如何触发我发现ReplicationProcess它处理激活操作并发送com/day/cq/wcm/workflow/req/for/activation事件.这是我迷路的地方 - 我所知道的AEM OSGi控制台都没有涵盖这种关系.

如何找到用于处理特定事件主题的事件处理程序?

小智 7

如果您知道事件主题,则可以使用bundleContext查找对正确的EventHandler OSGi服务的引用,例如使用AEM Groovy控制台:

ServiceReference[] sr = bundleContext.getServiceReferences(org.osgi.service.event.EventHandler.class, "(event.topics=com/day/cq/wcm/workflow/req/for/activation)")

for (i=0; i< sr.length; i++) {
    println bundleContext.getService(sr[i])
}
Run Code Online (Sandbox Code Playgroud)

产量

com.day.cq.wcm.workflow.impl.WcmWorkflowServiceImpl@618c5804

您还可以使用OSGi Felix Web控制台(服务选项卡)来查找它:

Web控制台服务选项卡