Criação de um serviço OSGi que reconheça Cluster

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.

Observação:

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

Logotipo da Adobe

Fazer logon em sua conta