From 31241964f69149641ac3d22f8ff43d09584c36d2 Mon Sep 17 00:00:00 2001 From: Alessandro Boch Date: Mon, 27 Jan 2014 10:17:48 -0800 Subject: [PATCH] Backward compatibility change for Configuration Service - Now that config save is no longer bound to infinispan cache type contraint of ConcurrentMap, need to assure old configuration still serialized as concurrent maps can be still be read. Change-Id: I6b4404b2280fa923391aeee02cf56ed9a8847552 Signed-off-by: Alessandro Boch --- .../configuration/internal/ConfigurationService.java | 10 ++++++++-- .../internal/ContainerConfigurationService.java | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ConfigurationService.java b/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ConfigurationService.java index 03acfa88eb..e4d55d11fb 100644 --- a/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ConfigurationService.java +++ b/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ConfigurationService.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.configuration.internal; +import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; @@ -189,7 +190,12 @@ public class ConfigurationService implements IConfigurationService, ICacheUpdate } String source = String.format("%s%s", ROOT, fileName); Object obj = objReader.read(reader, source); - return (obj == null || !(obj instanceof List)) ? Collections. emptyList() - : (List) obj; + if (obj == null) { + return Collections. emptyList(); + } + if (obj instanceof ConcurrentMap) { + return new ArrayList(((ConcurrentMap)obj).values()); + } + return (List) obj; } } diff --git a/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ContainerConfigurationService.java b/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ContainerConfigurationService.java index c33fdefd7b..9c1d391daa 100644 --- a/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ContainerConfigurationService.java +++ b/opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ContainerConfigurationService.java @@ -10,6 +10,7 @@ package org.opendaylight.controller.configuration.internal; import java.io.File; +import java.util.ArrayList; import java.util.Collections; import java.util.Dictionary; import java.util.EnumSet; @@ -219,7 +220,12 @@ public class ContainerConfigurationService implements IConfigurationContainerSer } String source = String.format("%s%s", root, fileName); Object obj = objReader.read(reader, source); - return (obj == null || !(obj instanceof List)) ? Collections. emptyList() - : (List) obj; + if (obj == null) { + return Collections. emptyList(); + } + if (obj instanceof ConcurrentMap) { + return new ArrayList(((ConcurrentMap)obj).values()); + } + return (List) obj; } } -- 2.36.6