Problema
Criação de um serviço OSGi que esteja ciente de estar em execução em um nó subordinado ou em um nó mestre de cluster no CQ5 / CRX.
Solução
No CQ5, você poderá usar a interface ClusterAware para verificar o descritor periodicamente de forma automática. Isso facilitará as coisas se o nó for eleito como mestre:
import com.day.cq.jcrclustersupport.ClusterAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Component(metatype = false, policy = ConfigurationPolicy.IGNORE)
@Service(ClusterAware.class)
public class MyClusterAwareService implements ClusterAware {
public void unbindRepository() {
log.info("No Repository is bound or Repository is unbound");
}
public void bindRepository(String repositoryId, String clusterId, boolean isMaster) {
log.info("Bound to Repository {} Node {} (Cluster: {})",
new Object[] { (isMaster ? "Master" : "Slave"), repositoryId, clusterId });
doSomethiing(isMaster);
}
private void doSomething(boolean isMaster) {
//TODO: your code here
}
}
Observação: o recurso ClusterAware se aplica apenas ao CQ5.3 com o Feature Pack 34071 instalado, CQ5.4 ou versão posterior.
Aplica-se a
CQ 5.3
CQ 5.4
CRX 2.1
CRX 2.2
** Caso deseje usá-lo no CQ5.3, será necessário o 5.3 Feature Pack 34071 e o CRX hotfix 2.1.0.10. Caso você não tenha esses hotfixes, poderá solicitá-los via daycare.
O AEM 5.6.1 em diante usa a nova api baseada em topologia. Veja os detalhes em http://helpx.adobe.com/br/cq/kb/create-cluster-aware-osgi-service.html
Fazer logon em sua conta