From 003e541e31a481ab230b0cfb90ed1c90ab742085 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 7 Dec 2015 10:24:40 +0100 Subject: [PATCH] Remove the use of ObjectCache Short-circuit to the internal interner to keep the caching instances unified. Change-Id: I1cac0ba24dab64dd750b1471fc8edbfce4470b93 Signed-off-by: Robert Varga --- .../yangtools/yang/common/QName.java | 21 ++----------------- .../yangtools/yang/common/QNameModule.java | 7 ++----- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java index ed05140174..f94e95c87c 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java @@ -20,8 +20,6 @@ import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.opendaylight.yangtools.concepts.Immutable; -import org.opendaylight.yangtools.objcache.ObjectCache; -import org.opendaylight.yangtools.objcache.ObjectCacheFactory; /** * The QName from XML consists of local name of element and XML namespace, but @@ -49,7 +47,6 @@ import org.opendaylight.yangtools.objcache.ObjectCacheFactory; */ public final class QName implements Immutable, Serializable, Comparable { private static final Interner INTERNER = Interners.newWeakInterner(); - private static final ObjectCache CACHE = ObjectCacheFactory.getObjectCache(QName.class); private static final long serialVersionUID = 5398411242927766414L; static final String QNAME_REVISION_DELIMITER = "?revision="; @@ -76,27 +73,13 @@ public final class QName implements Immutable, Serializable, Comparable { * Look up specified QName in the global cache and return a shared reference. * * @param qname QName instance - * @return Cached instance, according to {@link ObjectCache} policy. + * @return Cached instance, according to {@link org.opendaylight.yangtools.objcache.ObjectCache} policy. * * @deprecated Use {@link #intern()} instead. */ @Deprecated public static QName cachedReference(final QName qname) { - // We also want to make sure we keep the QNameModule cached - final QNameModule myMod = qname.getModule(); - final QNameModule cacheMod = QNameModule.cachedReference(myMod); - - final QName what; - // Identity comparison is here on purpose, as we are deciding whether to potentially store 'qname' - // into cache. It is important that it does not hold user-supplied reference (such a String instance from - // XML parser. - if (cacheMod == myMod) { - what = qname; - } else { - what = QName.create(cacheMod, qname.localName); - } - - return CACHE.getReference(what); + return qname.intern(); } /** diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java index 32cf9c0cd5..0c786146e6 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java @@ -16,14 +16,11 @@ import java.net.URISyntaxException; import java.util.Date; import java.util.Objects; import org.opendaylight.yangtools.concepts.Immutable; -import org.opendaylight.yangtools.objcache.ObjectCache; -import org.opendaylight.yangtools.objcache.ObjectCacheFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class QNameModule implements Immutable, Serializable { private static final Interner INTERNER = Interners.newWeakInterner(); - private static final ObjectCache CACHE = ObjectCacheFactory.getObjectCache(QNameModule.class); private static final Logger LOG = LoggerFactory.getLogger(QNameModule.class); private static final QNameModule NULL_INSTANCE = new QNameModule(null, null); private static final long serialVersionUID = 1L; @@ -46,13 +43,13 @@ public final class QNameModule implements Immutable, Serializable { * Look up specified module in the global cache and return a shared reference. * * @param module Module instance - * @return Cached instance, according to {@link ObjectCache} policy. + * @return Cached instance, according to {@link org.opendaylight.yangtools.objcache.ObjectCache} policy. * * @deprecated Use {@link #intern()} instead. */ @Deprecated public static QNameModule cachedReference(final QNameModule module) { - return CACHE.getReference(module); + return module.intern(); } /** -- 2.36.6