Class TopiaReplicationServiceImpl

java.lang.Object
org.nuiton.topia.replication.TopiaReplicationServiceImpl
All Implemented Interfaces:
org.nuiton.topia.persistence.TopiaService, TopiaReplicationService

public class TopiaReplicationServiceImpl extends Object implements TopiaReplicationService
Implantation du service de replication.
Since:
2.2.0
Author:
Tony Chemit - chemit@codelutin.com
  • Field Details

    • context

      protected org.nuiton.topia.persistence.TopiaApplicationContext context
      le contexte sur la base source de la replication
    • modelBuilder

      protected TopiaReplicationModelBuilder modelBuilder
      le constructeur de modèle de réplication.
      Since:
      2.4.3
  • Constructor Details

    • TopiaReplicationServiceImpl

      public TopiaReplicationServiceImpl()
  • Method Details

    • initTopiaService

      public void initTopiaService(org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext, Map<String,String> serviceConfiguration)
      Specified by:
      initTopiaService in interface org.nuiton.topia.persistence.TopiaService
    • prepare

      public ReplicationModel prepare(org.nuiton.topia.persistence.TopiaEntityEnum[] contracts, boolean computeOrder, String... topiaIds) throws org.nuiton.topia.persistence.TopiaException
      Description copied from interface: TopiaReplicationService
      Prepare le modele de replication pour les entites dans les topiaIds sont donnes.
      Specified by:
      prepare in interface TopiaReplicationService
      Parameters:
      contracts - les contrats a repliquer
      computeOrder - drapeau positionné à true si on doit calculer l'ordre des entités à repliquer, sinon on utilise l'ordre induit par les contracts.
      topiaIds - la liste des ids d'entites a repliquer
      Returns:
      le model de replication initialise
      Throws:
      org.nuiton.topia.persistence.TopiaException - pour toute erreur recontree
    • prepareForAll

      public ReplicationModel prepareForAll(org.nuiton.topia.persistence.TopiaEntityEnum[] contracts) throws org.nuiton.topia.persistence.TopiaException
      Description copied from interface: TopiaReplicationService
      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.
      Specified by:
      prepareForAll in interface TopiaReplicationService
      Parameters:
      contracts - les contrats des types a repliquer
      Returns:
      le modele pour la replication
      Throws:
      org.nuiton.topia.persistence.TopiaException - pour toute erreur rencontree
    • getModelBuilder

      public TopiaReplicationModelBuilder getModelBuilder()
      Description copied from interface: TopiaReplicationService
      Obtains the model builder use to creat the replication's model.
      Specified by:
      getModelBuilder in interface TopiaReplicationService
      Returns:
      the model builder
    • doReplicate

      public void doReplicate(ReplicationModel model, org.nuiton.topia.persistence.TopiaApplicationContext targetTx) throws Exception
      Description copied from interface: TopiaReplicationService
      Lance l'operation de replication a partir du context source vers le context de destination sur les entites donnees et en utilisant le modele de replication precedemment construit via la methode TopiaReplicationService.prepare(TopiaEntityEnum[], boolean, String...) ou TopiaReplicationService.prepareForAll(TopiaEntityEnum[]).
      Specified by:
      doReplicate in interface TopiaReplicationService
      Parameters:
      model - le modele de replication
      targetTx - le context sur la source de donnees ou repliquer
      Throws:
      Exception - pour toute erreur pendant la replication
    • doRollback

      public void doRollback(TopiaReplicationContext replicationContext) throws Exception
      Description copied from interface: TopiaReplicationService
      Pour revenir en arrière lorsque la réplication a échouée .
      Specified by:
      doRollback in interface TopiaReplicationService
      Parameters:
      replicationContext - the replication's context used to start replication.
      Throws:
      Exception - pour toute erreur pendant la replication
    • doReplicateNode

      public void doReplicateNode(TopiaReplicationContext replicationContext, ReplicationNode node) throws Exception
      Throws:
      Exception
    • doRollbackNode

      public void doRollbackNode(TopiaReplicationContext replicationContext, ReplicationNode node) throws Exception
      Throws:
      Exception
    • close

      public void close()
      Specified by:
      close in interface org.nuiton.topia.persistence.TopiaService