我正在尝试从代码中激活一些页面。我创建了一个工作流程,只要在其他一些引用此页面的页面中修改某些内容,就会修改页面。我试图通过设置激活属性来做到这一点,如:
parentpage.setProperty("cq:lastModified", Calendar.getInstance());
parentpage.setProperty("cq:lastModifiedBy", session.getUserID());
虽然每次都会设置此属性。但是在发布实例中没有发生激活。我们如何激活自定义工作流本身的程序化盟友?
答案 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);