org.nuiton.topia.replication
Interface TopiaReplicationService

All Superinterfaces:
TopiaService
All Known Subinterfaces:
TopiaReplicationImplementor
All Known Implementing Classes:
ReplicationEngine

public interface TopiaReplicationService
extends TopiaService

User visible interface for replication engin To use replicator you must have properties defined in config file:

  • topia.replication.engin=[class used to indexation]
  • possible specific property for index engin used The replication is always done in two phases :
  • - prepare the replication model - (prepare(TopiaEntityEnum[], String[]) - (prepareForAll(TopiaEntityEnum[])
  • - lanch replication doReplicate(ReplicationModel, TopiaContext)

    Since:
    2.2.0
    Author:
    chemit

    Field Summary
    static String SERVICE_NAME
               
     
    Method Summary
     void addAfterOperation(ReplicationModel model, TopiaEntityEnum type, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters)
              Ajouter une nouvelle operation post-replication, sur un type de donnee.
     void addBeforeOperation(ReplicationModel model, TopiaEntityEnum type, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters)
              Ajouter une nouvelle operation pre-replication, sur un type de donnee.
     void doReplicate(ReplicationModel model, TopiaContext dstCtxt)
              Lance l'operation de replication a partir du context source vers le context de destination sur les entites donnees et en utilisant le model de replication precedemment construit via la methode prepare(TopiaEntityEnum[], String[]) ou prepareForAll(TopiaEntityEnum[]).
     ReplicationModel prepare(TopiaEntityEnum[] contracts, String... topiaIds)
              Prepare le modele de replication pour les entites dans les topiaIds sont donnes.
     ReplicationModel prepareForAll(TopiaEntityEnum[] contracts)
              Prepare le modele de replication pour toutes les entites des types donnes.
     ReplicationModel prepareWithComputedOrder(TopiaEntityEnum[] contracts, String... topiaIds)
              Prepare le modele de replication pour les entites données en ne faisant pas de calcul sur l'ordre des entités à répliquer.
     
    Methods inherited from interface org.nuiton.topia.framework.TopiaService
    getPersistenceClasses, getServiceName, postInit, preInit
     

    Field Detail

    SERVICE_NAME

    static final String SERVICE_NAME
    See Also:
    Constant Field Values
    Method Detail

    prepare

    ReplicationModel prepare(TopiaEntityEnum[] contracts,
                             String... topiaIds)
                             throws TopiaException
    Prepare le modele de replication pour les entites dans les topiaIds sont donnes.

    Parameters:
    contracts - les contrats a repliquer
    topiaIds - la liste des ids d'entites a repliquer
    Returns:
    le model de replication initialise
    Throws:
    TopiaException - pour toute erreur recontree

    prepareForAll

    ReplicationModel prepareForAll(TopiaEntityEnum[] contracts)
                                   throws TopiaException
    Prepare le modele de replication pour toutes les entites des types donnes. La méthode calcule l'ordre de replication des données. Actuellement, on n'est pas capable de calculer l'ordre si le graphe des entités contient des cycles. TODO : faire en sorte de pouvoir gérer les cycles.

    Parameters:
    contracts - les contrats des types a repliquer
    Returns:
    le modele pour la replication
    Throws:
    TopiaException - pour toute erreur rencontree

    prepareWithComputedOrder

    ReplicationModel prepareWithComputedOrder(TopiaEntityEnum[] contracts,
                                              String... topiaIds)
                                              throws TopiaException
    Prepare le modele de replication pour les entites données en ne faisant pas de calcul sur l'ordre des entités à répliquer. L'ordre des types donnees sera celui utilisé.

    Parameters:
    contracts - les contrats a repliquer (dans l'ordre donnée)
    topiaIds - les ids des entites a repliquer
    Returns:
    le model de replication initialise
    Throws:
    TopiaException - pour toute erreur recontree

    addBeforeOperation

    void addBeforeOperation(ReplicationModel model,
                            TopiaEntityEnum type,
                            Class<? extends TopiaReplicationOperation> operationClass,
                            Object... parameters)
    Ajouter une nouvelle operation pre-replication, sur un type de donnee.

    Parameters:
    model - le modele de replication
    type - le type du noeud de replication
    operationClass - l'implantation de l'operation
    parameters - les parametres supplementaires pour l'operation

    addAfterOperation

    void addAfterOperation(ReplicationModel model,
                           TopiaEntityEnum type,
                           Class<? extends TopiaReplicationOperation> operationClass,
                           Object... parameters)
    Ajouter une nouvelle operation post-replication, sur un type de donnee.

    Parameters:
    model - le modele de replication
    type - le type du noeud de replication
    operationClass - l'implantation de l'operation
    parameters - les parametres supplementaires pour l'operation

    doReplicate

    void doReplicate(ReplicationModel model,
                     TopiaContext dstCtxt)
                     throws Exception
    Lance l'operation de replication a partir du context source vers le context de destination sur les entites donnees et en utilisant le model de replication precedemment construit via la methode prepare(TopiaEntityEnum[], String[]) ou prepareForAll(TopiaEntityEnum[]).

    Parameters:
    model - le modele de replication
    dstCtxt - le context sur la source de donnees ou repliquer
    Throws:
    Exception - pour toute erreur pendant la replication


    Copyright © 2004-2010 CodeLutin. All Rights Reserved.