Source:
<code>public CloudBackupManager(VerifiableProperties properties, CloudConfig cloudConfig, ReplicationConfig replicationConfig, ClusterMapConfig clusterMapConfig, StoreConfig storeConfig, StoreKeyFactory storeKeyFactory, ClusterMap clusterMap, VirtualReplicatorCluster virtualReplicatorCluster, CloudDestinationFactory cloudDestinationFactory, ScheduledExecutorService scheduler, ConnectionPool connectionPool, MetricRegistry metricRegistry, NotificationSystem requestNotification, StoreKeyConverterFactory storeKeyConverterFactory, String transformerClassName) throws ReplicationException { super(replicationConfig, clusterMapConfig, storeKeyFactory, clusterMap, scheduler, virtualReplicatorCluster.getCurrentDataNodeId(), Collections.emptyList(), connectionPool, metricRegistry, requestNotification, storeKeyConverterFactory, transformerClassName); this.properties = properties; this.cloudConfig = cloudConfig; this.storeConfig = storeConfig; this.virtualReplicatorCluster = virtualReplicatorCluster; this.vcrMetrics = new VcrMetrics(metricRegistry); this.cloudDestination = cloudDestinationFactory.getCloudDestination(); persistor = new CloudTokenPersistor(replicaTokenFileName, mountPathToPartitionInfoList, replicationMetrics, clusterMap, factory, cloudDestination); <START> try { <END> virtualReplicatorCluster.participate(InstanceType.PARTICIPANT); } catch (Exception e) { throw new ReplicationException("Cluster participate failed.", e); } List<? extends PartitionId> partitionIds = virtualReplicatorCluster.getAssignedPartitionIds(); for (PartitionId partitionId : partitionIds) { addPartition(partitionId); } virtualReplicatorCluster.addListener(new VirtualReplicatorClusterListener() { @Override public void onPartitionAdded(PartitionId partitionId) { try { addPartition(partitionId); } catch (ReplicationException e) { logger.error("Exception on adding partition: ", e); } } @Override public void onPartitionRemoved(PartitionId partitionId) { removeRemoteReplicaInfoFromReplicaThread(partitionToPartitionInfo.get(partitionId).getRemoteReplicaInfos()); } }); replicationMetrics.populatePerColoMetrics(replicaThreadPoolByDc.keySet()); }</code><technical_language>feels of this logic in start() constructor</technical_language>

Target:
public CloudBackupManager(VerifiableProperties properties, CloudConfig cloudConfig, ReplicationConfig replicationConfig, ClusterMapConfig clusterMapConfig, StoreConfig storeConfig, StoreKeyFactory storeKeyFactory, ClusterMap clusterMap, VirtualReplicatorCluster virtualReplicatorCluster, CloudDestinationFactory cloudDestinationFactory, ScheduledExecutorService scheduler, ConnectionPool connectionPool, MetricRegistry metricRegistry, NotificationSystem requestNotification, StoreKeyConverterFactory storeKeyConverterFactory, String transformerClassName) throws ReplicationException { super(replicationConfig, clusterMapConfig, storeKeyFactory, clusterMap, scheduler, virtualReplicatorCluster.getCurrentDataNodeId(), Collections.emptyList(), connectionPool, metricRegistry, requestNotification, storeKeyConverterFactory, transformerClassName); this.properties = properties; this.cloudConfig = cloudConfig; this.storeConfig = storeConfig; this.virtualReplicatorCluster = virtualReplicatorCluster; this.vcrMetrics = new VcrMetrics(metricRegistry); this.cloudDestination = cloudDestinationFactory.getCloudDestination(); this.persistor = new CloudTokenPersistor(replicaTokenFileName, mountPathToPartitionInfos, replicationMetrics, clusterMap, factory, cloudDestination); }