X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fmodel%2FMirrorMaker.java;h=ab183d6cf017cf1318da41bdef86c71140e0c339;hb=HEAD;hp=1e381b8444bdea1363c2a5b4a93a61b540eccea6;hpb=ad29261e05ff057134d48b7d6a99da1cd07849e0;p=dmaap%2Fdbcapi.git diff --git a/src/main/java/org/onap/dmaap/dbcapi/model/MirrorMaker.java b/src/main/java/org/onap/dmaap/dbcapi/model/MirrorMaker.java index 1e381b8..ab183d6 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/model/MirrorMaker.java +++ b/src/main/java/org/onap/dmaap/dbcapi/model/MirrorMaker.java @@ -20,35 +20,41 @@ package org.onap.dmaap.dbcapi.model; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Set; - -import org.apache.log4j.Logger; -import org.onap.dmaap.dbcapi.logging.DmaapbcLogMessageEnum; import org.onap.dmaap.dbcapi.service.MirrorMakerService; +import java.util.ArrayList; + public class MirrorMaker extends DmaapObject { - static final Logger logger = Logger.getLogger(MirrorMaker.class); + private String sourceCluster; private String targetCluster; private String mmName; private ArrayList topics; //re-using this var name for backwards DB compatibility - private Set vectors; public MirrorMaker(){ } - + public MirrorMaker(String source, String target, int i) { + initMM( source, target ); + // original mm names did not have any index, so leave off index 0 for + // backwards compatibility + if ( i != 0 ) { + String n = this.getMmName() + "_" + i; + this.setMmName(n); + } + } public MirrorMaker(String source, String target) { + initMM( source, target ); + } + + private void initMM(String source, String target) { sourceCluster = source; targetCluster = target; mmName = genKey(source, target); - vectors = new HashSet(); - topics = new ArrayList(); + topics = new ArrayList<>(); } @@ -61,36 +67,6 @@ public class MirrorMaker extends DmaapObject { } - public void addVector( String fqtn, String source, String target ) { - logger.info( "addVector: fqtn=" + fqtn + " source=" + source + " target=" + target ); - if ( ! sourceCluster.equals( source ) ){ - errorLogger.error( DmaapbcLogMessageEnum.MM_CIRCULAR_REF, source, sourceCluster ); - } - vectors.add(new ReplicationVector( fqtn, source, target )); - } - - public void delVector( String fqtn, String source, String target ) { - vectors.remove(new ReplicationVector( fqtn, source, target)); - } - - - - public String toJSON() { - StringBuilder str = new StringBuilder( "{ \"source\": " + sourceCluster + ",\"topics\": [" ); - int numTargets = 0; - for (ReplicationVector rv: vectors) { - if ( numTargets > 0 ) { - str.append( ","); - } - str.append( " \"target\": " + rv.getTargetCluster() + ", \"topic\": " + rv.getFqtn()); - numTargets++; - } - str.append( "] }" ); - - return str.toString(); - } - - // returns the JSON for MM message containing which Topics to replicate /* * example: @@ -104,17 +80,15 @@ public class MirrorMaker extends DmaapObject { } } */ - public String updateWhiteList() { + public String getWhitelistUpdateJSON() { StringBuilder str = new StringBuilder( "{ \"messageID\": \"" + MirrorMakerService.genTransactionId() + "\", \"updateWhiteList\": {" ); str.append( " \"name\": \"" + this.getMmName() + "\", \"whitelist\": \"" ); int numTargets = 0; - //for (ReplicationVector rv: vectors) { for (String rv: topics) { if ( numTargets > 0 ) { str.append( ","); } - //str.append( rv.getFqtn() ); str.append( rv ); numTargets++; } @@ -141,9 +115,9 @@ public class MirrorMaker extends DmaapObject { StringBuilder str = new StringBuilder( "{ \"messageID\": \"" + MirrorMakerService.genTransactionId() + "\", \"createMirrorMaker\": {" ); str.append( " \"name\": \"" + this.getMmName() + "\", " ); str.append( " \"consumer\": \"" + this.sourceCluster + ":" + consumerPort + "\", " ); - str.append( " \"producer\": \"" + this.targetCluster + ":" + producerPort + "\" "); + str.append( " \"producer\": \"" + this.targetCluster + ":" + producerPort + "\", "); - str.append( " } }" ); + str.append( " \"numStreams\": \"10\" } }" ); return str.toString(); } @@ -166,18 +140,11 @@ public class MirrorMaker extends DmaapObject { } - public Set getVectors() { - return vectors; - } - - public void setVectors(Set vectors) { - this.vectors = vectors; - } public ArrayList getTopics() { return topics; } - //public void setVectors(Set vectors) { + public void setTopics(ArrayList topics) { this.topics = topics; } @@ -194,7 +161,10 @@ public class MirrorMaker extends DmaapObject { public void addTopic( String topic ) { - topics.add(topic); + if ( ! topics.contains(topic)) { + topics.add(topic); + } + logger.info( "Mirrormaker.addTopic: topic=" + topic + " . Now have " + topics.size() + " topics" ); } public int getTopicCount() {