如何在cq5工作流程中以编程方式激活页面

时间:2013-09-23 09:34:49

标签: cq5

我正在尝试从代码中激活一些页面。我创建了一个工作流程,只要在其他一些引用此页面的页面中修改某些内容,就会修改页面。我试图通过设置激活属性来做到这一点,如:

parentpage.setProperty("cq:lastModified", Calendar.getInstance());
parentpage.setProperty("cq:lastModifiedBy", session.getUserID());

虽然每次都会设置此属性。但是在发布实例中没有发生激活。我们如何激活自定义工作流本身的程序化盟友?

2 个答案:

答案 0 :(得分:7)

使用Replicator OSGi服务:

@Component
public class MyComponent {

    @Reference
    private Replicator replicator;

    private void activatePage(Session session) {
    //...
        replicator.replicate(session, ReplicationActionType.ACTIVATE, pathToPage);
    //...
    }
}

您无需设置任何属性。

答案 1 :(得分:0)

如果您没有该组件,则可以将服务注入 -

Replicator replicator = getSling().getService(Replicator.class);