X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fnode%2Futils%2FQNameFactory.java;h=1b9a21f85e1b1ba24014a51ed09c4e21492f36d2;hp=5a8f5228619e9f80a091da123aa734fb59dcd85f;hb=dc54b87a6b2fb11d233b8294b684268f4d5161de;hpb=3a8636987a20a584ad25af7aba11ffcade21ebe3 diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/QNameFactory.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/QNameFactory.java index 5a8f522861..1b9a21f85e 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/QNameFactory.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/QNameFactory.java @@ -1,13 +1,10 @@ /* + * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved. * - * Copyright (c) 2014 Cisco Systems, 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 - * + * 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.node.utils; import com.google.common.cache.CacheBuilder; @@ -15,23 +12,23 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import org.opendaylight.yangtools.yang.common.QName; -public class QNameFactory { +public final class QNameFactory { + private static final int MAX_QNAME_CACHE_SIZE = Integer.getInteger( + "org.opendaylight.controller.cluster.datastore.node.utils.qname-cache.max-size", 10000); - private static final int MAX_QNAME_CACHE_SIZE = 10000; - - private static LoadingCache cache = CacheBuilder.newBuilder() - .maximumSize(MAX_QNAME_CACHE_SIZE) - .softValues() - .build( - new CacheLoader() { - public QName load(String key) { - return QName.create(key); + private static final LoadingCache CACHE = CacheBuilder.newBuilder().maximumSize(MAX_QNAME_CACHE_SIZE) + .weakValues().build(new CacheLoader() { + @Override + public QName load(final String key) { + return QName.create(key).intern(); } - } - ); + }); + + private QNameFactory() { + } - public static QName create(String name){ - return cache.getUnchecked(name); + public static QName create(final String name) { + return CACHE.getUnchecked(name); } }