2013-09-23 4 views
6

코드에서 일부 페이지를 활성화하려고합니다. 이 페이지에 대한 참조가있는 다른 페이지에서 일부 콘텐츠가 수정 될 때마다 페이지를 수정할 워크 플로를 만들었습니다. 나는 활성화 속성을 다음과 같이 설정하여이 작업을 시도하고있었습니다.cq5 워크 플로에서 프로그래밍 방식으로 페이지를 활성화하는 방법

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

이 속성은 매번 설정 되나. 그러나 게시 인스턴스에서 활성화가 일어나지 않습니다. 맞춤 워크 플로 자체에서 프로그래밍 방식의 동맹을 활성화하려면 어떻게해야합니까?

답변

7

사용 Replicator OSGi 서비스는 :

@Component 
public class MyComponent { 

    @Reference 
    private Replicator replicator; 

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

당신은 어떤 속성을 설정할 필요가 없습니다.

+0

,하지만 난 당신이 도움이 exception.could 널 포인터가 계속입니다 @ Tomek Rekawek – Param1414086

+0

나는 당신을 돕고 싶지만 좀 더 자세한 내용을 써야합니다. 어쩌면 질문을 수정하고 클래스 코드와 NPE 스택 추적을 지나칠 수 있습니다. –

+0

어디에서 복제기를 가져 옵니까? 새 ReplicatorImpl()을 실행하고 그걸로 실행하면됩니까? – AlleyGator

0

구성 요소를하지 않은 경우 다음과 같이 서비스를 삽입 할 수 -. 나뿐만 아니라이 코드를 사용하여 시도 이전

Replicator replicator = getSling().getService(Replicator.class); 
관련 문제