6

コードからいくつかのページをアクティブ化しようとしています。このページへの参照を持つ他のページでコンテンツが変更されるたびにページを変更するワークフローを作成しました。次のようなアクティベーションのプロパティを設定することで、これを実行しようとしていました。

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

このプロパティは毎回設定されていますが。ただし、パブリッシュ インスタンスではアクティブ化は行われません。カスタム ワークフロー自体でプログラマティック アライを有効にするにはどうすればよいですか?

4

2 に答える 2

9

ReplicatorOSGi サービスを使用します。

@Component
public class MyComponent {

    @Reference
    private Replicator replicator;

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

プロパティを設定する必要はありません。

于 2013-09-23T11:21:37.520 に答える
0

コンポーネントがない場合は、サービスを次のように注入できます-

Replicator replicator = getSling().getService(Replicator.class);
于 2014-12-17T17:45:21.453 に答える