You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/03/10 09:56:00 UTC

[lucene] 04/42: use proper generics

This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch jira/solr14155-1
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit 90516874d8e5621c032a779b7d0a853bf13ee2c4
Author: noblepaul <no...@gmail.com>
AuthorDate: Sun Jul 12 22:14:26 2020 +1000

    use proper generics
---
 .../java/org/apache/solr/pkg/CoreRefreshingClassLoader.java    |  9 ++++++---
 solr/core/src/java/org/apache/solr/search/CacheConfig.java     | 10 +++++-----
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/pkg/CoreRefreshingClassLoader.java b/solr/core/src/java/org/apache/solr/pkg/CoreRefreshingClassLoader.java
index 7b3882d..e75d595 100644
--- a/solr/core/src/java/org/apache/solr/pkg/CoreRefreshingClassLoader.java
+++ b/solr/core/src/java/org/apache/solr/pkg/CoreRefreshingClassLoader.java
@@ -63,10 +63,13 @@ public class CoreRefreshingClassLoader implements PackageListeners.Listener {
     return version;
   }
 
-  @SuppressWarnings({"rawtypes","unchecked"})
-  public static Class loadClass(SolrResourceLoader srl, PluginInfo info, Class type) {
+  /**
+   * Load a class using an appropriate {@link SolrResourceLoader} depending of the package of that class
+   */
+  public static <T> Class<? extends T> findClass(SolrResourceLoader srl, PluginInfo info, Class<T>  type) {
     if(info.cName.pkg == null) return srl.findClass(info.className, type);
-    return _get(srl, info, version -> version.getLoader().findClass(info.cName.className, type));
+    return _get(srl, info,
+            (Function<PackageLoader.Package.Version, Class<? extends T>>) ver -> ver.getLoader().findClass(info.cName.className, type));
 
   }
 
diff --git a/solr/core/src/java/org/apache/solr/search/CacheConfig.java b/solr/core/src/java/org/apache/solr/search/CacheConfig.java
index e47aed4..807f3c0 100644
--- a/solr/core/src/java/org/apache/solr/search/CacheConfig.java
+++ b/solr/core/src/java/org/apache/solr/search/CacheConfig.java
@@ -122,22 +122,22 @@ public class CacheConfig implements MapSerializable{
     config.args = attrs;
 
     Map<String, String> map = xpath == null ? null : solrConfig.getOverlay().getEditableSubProperties(xpath);
-    if(map != null){
+    if (map != null) {
       HashMap<String, String> mapCopy = new HashMap<>(config.args);
       for (Map.Entry<String, String> e : map.entrySet()) {
-        mapCopy.put(e.getKey(),String.valueOf(e.getValue()));
+        mapCopy.put(e.getKey(), String.valueOf(e.getValue()));
       }
       config.args = mapCopy;
     }
     String nameAttr = config.args.get(NAME);  // OPTIONAL
-    if (nameAttr==null) {
+    if (nameAttr == null) {
       config.args.put(NAME, config.nodeName);
     }
 
     SolrResourceLoader loader = solrConfig.getResourceLoader();
     config.cacheImpl = config.args.get("class");
-    if(config.cacheImpl == null) config.cacheImpl = "solr.CaffeineCache";
-    config.clazz = () -> CoreRefreshingClassLoader.loadClass(loader,
+    if (config.cacheImpl == null) config.cacheImpl = "solr.CaffeineCache";
+    config.clazz = () -> CoreRefreshingClassLoader.findClass(loader,
             new PluginInfo("cache", Collections.singletonMap("class", config.cacheImpl)),
             SolrCache.class);
     config.regenImpl = config.args.get("regenerator");