2013-09-23 17 views
6

Bazı sayfaları koddan etkinleştirmeye çalışıyorum. Bu sayfaya referans veren bazı diğer sayfalarda bazı içerikler değiştirildiğinde bir sayfayı değiştirecek bir iş akışı yaptım. Ben gibi aktivasyon özelliklerini ayarlayarak bunu çalışıyordu: Bu özellik her zaman set oluyorCq5 iş akışında program aracılığıyla sayfa nasıl etkinleştirilir

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

rağmen. Ancak yayınlama örneğinde aktivasyon gerçekleşmiyor. Özel iş akışında programatik müttefiği nasıl etkinleştiririz?

cevap

7

Kullanım Replicator OSGi hizmeti:

@Component 
public class MyComponent { 

    @Reference 
    private Replicator replicator; 

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

herhangi özellikleri ayarlamak gerek yoktur.

+0

, ama size bu konuda yardımcı exception.could null işaretçi almaya devam duyuyorum @ Tomek Rekawek – Param1414086

+0

Size yardım etmeyi çok isterim, ancak daha fazla ayrıntı yazmanız gerekiyor. Belki de soruyu değiştirin ve sınıf kodunu ve NPE yığın izini geçin. –

+0

Çoğalıcıyı nereden alıyorsunuz? Yeni ReplicatorImpl() ve sadece bununla çalıştırın? – AlleyGator

0

bileşeni yoksa o kadar hizmeti enjekte edebilir -. I da bu kodu kullanarak çalıştı Daha önce

Replicator replicator = getSling().getService(Replicator.class); 
İlgili konular