X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fservice%2FMirrorMakerService.java;h=da9d822f7b312716a6938ccec4f3205440522d59;hb=refs%2Fheads%2Fcasablanca;hp=8acc4f3b281c4e163fdf2b5b7f50f6ceff4c3e84;hpb=1360b9df89a422d51ef40644ea5f9cf52cb84c6f;p=dmaap%2Fdbcapi.git diff --git a/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java b/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java index 8acc4f3..da9d822 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/MirrorMakerService.java @@ -155,7 +155,7 @@ public class MirrorMakerService extends BaseLoggingClass { return ret; } - public MirrorMaker getNextMM( String source, String target ) { + public MirrorMaker getNextMM( String source, String target, String fqtn ) { int i = 0; MirrorMaker mm = null; while( mm == null ) { @@ -164,6 +164,9 @@ public class MirrorMakerService extends BaseLoggingClass { if ( mm == null ) { mm = new MirrorMaker(source, target, i); } + if ( mm.getTopics().contains(fqtn) ) { + break; + } if ( mm.getTopicCount() >= maxTopicsPerMM ) { logger.info( "getNextMM: MM " + mm.getMmName() + " has " + mm.getTopicCount() + " topics. Moving to next MM"); i++; @@ -177,17 +180,17 @@ public class MirrorMakerService extends BaseLoggingClass { public MirrorMaker splitMM( MirrorMaker orig ) { - int index = 1; String source = orig.getSourceCluster(); String target = orig.getTargetCluster(); ArrayList whitelist = orig.getTopics(); while( whitelist.size() > maxTopicsPerMM ) { - MirrorMaker mm = this.getNextMM( source, target ); + int last = whitelist.size() - 1; String topic = whitelist.get(last); whitelist.remove(last); + MirrorMaker mm = this.getNextMM( source, target, "aValueThatShouldNotMatchAnything" ); mm.addTopic(topic); this.updateMirrorMaker(mm); }