From 8b81403fe18c40e3efe47a2147844b0fea1b23ff Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 23 Mar 2016 14:27:17 +0100 Subject: [PATCH] Move ShardManagerSnapshot to new package This creates a copy of the ShardManagerSnapshot in the new package and uses readResolve() to perform migration. Change-Id: I976adbaafd74de64a90d3970e17ce4ea52bdbe40 Signed-off-by: Robert Varga --- .../datastore/ShardManagerSnapshot.java | 10 ++++- .../datastore/shardmanager/ShardManager.java | 1 - .../shardmanager/ShardManagerSnapshot.java | 45 +++++++++++++++++++ .../shardmanager/ShardManagerTest.java | 1 - 4 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerSnapshot.java diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManagerSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManagerSnapshot.java index 4cc54dd8e3..3e7274ce67 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManagerSnapshot.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManagerSnapshot.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.cluster.datastore; import com.google.common.base.Preconditions; +import java.io.ObjectStreamException; import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -16,8 +17,11 @@ import javax.annotation.Nonnull; /** * Persisted data of the ShardManager + * + * @deprecated Use {@link org.opendaylight.controller.cluster.datastore.shardmanager.ShardManagerSnapshot} instead. + * This class is scheduled for removal once persistence migration from Beryllium is no longer needed. */ - +@Deprecated public class ShardManagerSnapshot implements Serializable { private static final long serialVersionUID = 1L; private final List shardList; @@ -34,4 +38,8 @@ public class ShardManagerSnapshot implements Serializable { public String toString() { return "ShardManagerSnapshot [ShardList = " + shardList + " ]"; } + + private Object readResolve() throws ObjectStreamException { + return org.opendaylight.controller.cluster.datastore.shardmanager.ShardManagerSnapshot.forShardList(shardList); + } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java index 7a41021475..dd60dcad68 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java @@ -58,7 +58,6 @@ import org.opendaylight.controller.cluster.datastore.ClusterWrapper; import org.opendaylight.controller.cluster.datastore.DatastoreContext; import org.opendaylight.controller.cluster.datastore.DatastoreContextFactory; import org.opendaylight.controller.cluster.datastore.Shard; -import org.opendaylight.controller.cluster.datastore.ShardManagerSnapshot; import org.opendaylight.controller.cluster.datastore.config.Configuration; import org.opendaylight.controller.cluster.datastore.config.ModuleShardConfiguration; import org.opendaylight.controller.cluster.datastore.exceptions.AlreadyExistsException; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerSnapshot.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerSnapshot.java new file mode 100644 index 0000000000..b6fe842692 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerSnapshot.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2015 Dell Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.controller.cluster.datastore.shardmanager; + +import com.google.common.collect.ImmutableList; +import java.io.Serializable; +import java.util.List; +import javax.annotation.Nonnull; + +/** + * Persisted data of the ShardManager + */ +// FIXME: make this package-protected once forShardList is removed. +public final class ShardManagerSnapshot implements Serializable { + private static final long serialVersionUID = 1L; + private final List shardList; + + ShardManagerSnapshot(final @Nonnull List shardList) { + this.shardList = ImmutableList.copyOf(shardList); + } + + List getShardList() { + return this.shardList; + } + + /** + * @deprecated This method is for migration only and should me removed once + * org.opendaylight.controller.cluster.datastore.ShardManagerSnapshot is removed. + */ + @Deprecated + public static ShardManagerSnapshot forShardList(final @Nonnull List shardList) { + return new ShardManagerSnapshot(shardList); + } + + @Override + public String toString() { + return "ShardManagerSnapshot [ShardList = " + shardList + " ]"; + } +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java index e5e5bf1648..ae281c6018 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java @@ -72,7 +72,6 @@ import org.opendaylight.controller.cluster.datastore.DatastoreContext; import org.opendaylight.controller.cluster.datastore.DatastoreContextFactory; import org.opendaylight.controller.cluster.datastore.Shard; import org.opendaylight.controller.cluster.datastore.ShardManager.SchemaContextModules; -import org.opendaylight.controller.cluster.datastore.ShardManagerSnapshot; import org.opendaylight.controller.cluster.datastore.config.Configuration; import org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl; import org.opendaylight.controller.cluster.datastore.config.EmptyModuleShardConfigProvider; -- 2.36.6