Fix inclusion/exclusion lists 37/110737/5
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 14 Mar 2024 20:00:43 +0000 (21:00 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 14 Mar 2024 20:00:43 +0000 (21:00 +0100)
Our previous patch has changed the semantics of the provided string.
Restore the previous behaviour.

JIRA: OVSDB-468
Change-Id: Ibfdb5c39e9357c285319e8cbd77680cfe36bece7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProvider.java

index 25b0e5ec28049db2c4276e3bb41c1b96e3f32ca2..d62cde5dc09b657583023f85b3d6fb6f6e7bf3f5 100644 (file)
@@ -12,7 +12,9 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.util.concurrent.FluentFuture;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.StringTokenizer;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import javax.annotation.PreDestroy;
@@ -64,9 +66,9 @@ public class SouthboundProvider implements DataTreeChangeListener<Topology>, Aut
         @AttributeDefinition
         boolean skip$_$monitoring$_$manager$_$status() default false;
         @AttributeDefinition
-        String[] bridge$_$reconciliation$_$inclusion$_$list();
+        String bridge$_$reconciliation$_$inclusion$_$list();
         @AttributeDefinition
-        String[] bridge$_$reconciliation$_$exclusion$_$list();
+        String bridge$_$reconciliation$_$exclusion$_$list();
     }
 
     private static final Logger LOG = LoggerFactory.getLogger(SouthboundProvider.class);
@@ -112,8 +114,8 @@ public class SouthboundProvider implements DataTreeChangeListener<Topology>, Aut
         this(dataBroker, entityOwnershipServiceDependency, ovsdbConnection, schemaService,
             bindingNormalizedNodeSerializer, systemReadyMonitor, diagStatusService,
             configuration.skip$_$monitoring$_$manager$_$status(),
-            List.of(configuration.bridge$_$reconciliation$_$inclusion$_$list()),
-            List.of(configuration.bridge$_$reconciliation$_$exclusion$_$list()));
+            getBridgesList(configuration.bridge$_$reconciliation$_$inclusion$_$list()),
+            getBridgesList(configuration.bridge$_$reconciliation$_$exclusion$_$list()));
     }
 
     @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR",
@@ -272,4 +274,17 @@ public class SouthboundProvider implements DataTreeChangeListener<Topology>, Aut
     boolean isRegistered() {
         return registered.get();
     }
+
+    private static List<String> getBridgesList(final String bridgeListStr) {
+        if (bridgeListStr == null || bridgeListStr.isEmpty()) {
+            return List.of();
+        }
+
+        final var bridgeList = new ArrayList<String>();
+        final var tokenizer = new StringTokenizer(bridgeListStr, ",");
+        while (tokenizer.hasMoreTokens()) {
+            bridgeList.add(tokenizer.nextToken());
+        }
+        return bridgeList;
+    }
 }