org.nuiton.topia.replication
Class TopiaReplicationServiceImpl

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

public class TopiaReplicationServiceImpl
extends Object
implements TopiaReplicationService

Implantation du service de replication.

Since:
2.2.0
Author:
tchemit

Field Summary
protected  TopiaContextImplementor context
          le contexte sur la base source de la replication
protected  TopiaReplicationModelBuilder modelBuilder
          le constructeur de modèle de réplication.
 
Fields inherited from interface org.nuiton.topia.replication.TopiaReplicationService
SERVICE_NAME, TOPIA_SERVICE_NAME
 
Constructor Summary
TopiaReplicationServiceImpl()
           
 
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 targetTx)
          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[]).
 void doReplicateNode(TopiaReplicationContext replicationContext, ReplicationNode node)
           
 void doRollback(TopiaReplicationContext replicationContext)
          Pour revenir en arrière lorsque la réplication a échouée .
 void doRollbackNode(TopiaReplicationContext replicationContext, ReplicationNode node)
           
 TopiaReplicationModelBuilder getModelBuilder()
          Obtains the model builder use to creat the replication's model.
 Class<?>[] getPersistenceClasses()
           
 String getServiceName()
           
 boolean postInit(TopiaContextImplementor context)
           
 boolean preInit(TopiaContextImplementor context)
           
 ReplicationModel prepare(TopiaEntityEnum[] contracts, boolean computeOrder, 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 dans les topiaIds sont donnes en utilisant l'ordre des contracts donné pour l'ordre de replication.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

context

protected TopiaContextImplementor 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 Detail

TopiaReplicationServiceImpl

public TopiaReplicationServiceImpl()
Method Detail

getServiceName

public String getServiceName()
Specified by:
getServiceName in interface TopiaService

getPersistenceClasses

public Class<?>[] getPersistenceClasses()
Specified by:
getPersistenceClasses in interface TopiaService

preInit

public boolean preInit(TopiaContextImplementor context)
Specified by:
preInit in interface TopiaService

postInit

public boolean postInit(TopiaContextImplementor context)
Specified by:
postInit in interface TopiaService

prepare

public ReplicationModel prepare(TopiaEntityEnum[] contracts,
                                boolean computeOrder,
                                String... topiaIds)
                         throws 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:
TopiaException - pour toute erreur recontree

prepareWithComputedOrder

public ReplicationModel prepareWithComputedOrder(TopiaEntityEnum[] contracts,
                                                 String... topiaIds)
                                          throws TopiaException
Description copied from interface: TopiaReplicationService
Prepare le modele de replication pour les entites dans les topiaIds sont donnes en utilisant l'ordre des contracts donné pour l'ordre de replication.

Specified by:
prepareWithComputedOrder in interface TopiaReplicationService
Parameters:
contracts - les contrats a repliquer 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:
TopiaException - pour toute erreur recontree

prepareForAll

public ReplicationModel prepareForAll(TopiaEntityEnum[] contracts)
                               throws 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:
TopiaException - pour toute erreur rencontree

addBeforeOperation

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

Specified by:
addBeforeOperation in interface TopiaReplicationService
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

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

Specified by:
addAfterOperation in interface TopiaReplicationService
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

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,
                        TopiaContext 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


Copyright © 2004-2011 CodeLutin. All Rights Reserved.