From 351b9d3c9e0148f89e487db44e40b83d00b41378 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 28 Feb 2020 16:02:58 +0100 Subject: [PATCH] Make OSGiModuleInfoSnapshot generation unsigned The intent is to have this an unsigned counter, expose it as such. JIRA: MDSAL-392 Change-Id: I7d240933ae35288be0ba6a5f8a047587ab179803 Signed-off-by: Robert Varga --- .../runtime/osgi/impl/BindingRuntimeContextImpl.java | 5 +++-- .../mdsal/dom/schema/osgi/OSGiModuleInfoSnapshot.java | 4 +++- .../dom/schema/osgi/impl/OSGiEffectiveModelImpl.java | 9 +++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/BindingRuntimeContextImpl.java b/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/BindingRuntimeContextImpl.java index ddde76201c..f177833c09 100644 --- a/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/BindingRuntimeContextImpl.java +++ b/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/BindingRuntimeContextImpl.java @@ -7,6 +7,7 @@ */ package org.opendaylight.mdsal.binding.runtime.osgi.impl; +import com.google.common.primitives.UnsignedLong; import org.opendaylight.binding.runtime.api.AbstractBindingRuntimeContext; import org.opendaylight.binding.runtime.api.BindingRuntimeContext; import org.opendaylight.binding.runtime.api.BindingRuntimeGenerator; @@ -33,8 +34,8 @@ public final class BindingRuntimeContextImpl extends AbstractBindingRuntimeConte @Reference BindingRuntimeGenerator generator = null; - private BindingRuntimeContext delegate = null; - private long generation; + private BindingRuntimeContext delegate; + private UnsignedLong generation; @Override public ClassLoadingStrategy getStrategy() { diff --git a/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/OSGiModuleInfoSnapshot.java b/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/OSGiModuleInfoSnapshot.java index 8f16b23b27..f68b197d55 100644 --- a/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/OSGiModuleInfoSnapshot.java +++ b/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/OSGiModuleInfoSnapshot.java @@ -8,6 +8,8 @@ package org.opendaylight.mdsal.dom.schema.osgi; import com.google.common.annotations.Beta; +import com.google.common.primitives.UnsignedLong; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.binding.runtime.api.ModuleInfoSnapshot; /** @@ -16,5 +18,5 @@ import org.opendaylight.binding.runtime.api.ModuleInfoSnapshot; @Beta public interface OSGiModuleInfoSnapshot extends ModuleInfoSnapshot { - long getGeneration(); + @NonNull UnsignedLong getGeneration(); } diff --git a/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/OSGiEffectiveModelImpl.java b/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/OSGiEffectiveModelImpl.java index 96b58a52d0..1608e5d032 100644 --- a/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/OSGiEffectiveModelImpl.java +++ b/dom/mdsal-dom-schema-osgi/src/main/java/org/opendaylight/mdsal/dom/schema/osgi/impl/OSGiEffectiveModelImpl.java @@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.annotations.VisibleForTesting; +import com.google.common.primitives.UnsignedLong; import com.google.common.util.concurrent.ListenableFuture; import java.util.Dictionary; import java.util.Hashtable; @@ -45,10 +46,10 @@ public final class OSGiEffectiveModelImpl implements OSGiModuleInfoSnapshot { private static final Logger LOG = LoggerFactory.getLogger(OSGiEffectiveModelImpl.class); private ModuleInfoSnapshot delegate; - private long generation; + private UnsignedLong generation; @Override - public long getGeneration() { + public UnsignedLong getGeneration() { return generation; } @@ -69,7 +70,7 @@ public final class OSGiEffectiveModelImpl implements OSGiModuleInfoSnapshot { @Activate void activate(final Map properties) { - generation = (Long) verifyNotNull(properties.get(GENERATION)); + generation = (UnsignedLong) verifyNotNull(properties.get(GENERATION)); delegate = (ModuleInfoSnapshot) verifyNotNull(properties.get(DELEGATE)); LOG.debug("ClassLoadingEffectiveModelContext generation {} activated", generation); } @@ -84,7 +85,7 @@ public final class OSGiEffectiveModelImpl implements OSGiModuleInfoSnapshot { static Dictionary props(final long generation, final ModuleInfoSnapshot delegate) { final Dictionary ret = new Hashtable<>(4); ret.put(Constants.SERVICE_RANKING, ranking(generation)); - ret.put(GENERATION, generation); + ret.put(GENERATION, UnsignedLong.fromLongBits(generation)); ret.put(DELEGATE, requireNonNull(delegate)); return ret; } -- 2.36.6