private void performReplication(ReplicationRequest replication) {
try {
String source = CouchUtils.computeEffectiveDatabaseUrl(
replication.getSourceServerUrl()
,replication.getSourceUserName()
,replication.getSourcePassword()
,replication.getSourceDbName() );
String target = CouchUtils.computeEffectiveDatabaseUrl(
replication.getTargetServerUrl()
,replication.getTargetUserName()
,replication.getTargetPassword()
,replication.getTargetDbName() );
JSONArray activeTasks = couchClient.activeTasks();
ReplicationStatus status = ReplicationStatus.findReplicationTask(activeTasks, source, target);
if( null == status ) {
logger.info("Start replication: "+replication);
couchClient.replicate(replication);
}
} catch(Exception e) {
logger.error("Problem performing replication: "+replication, e);
}
}